我正在尝试在Drupal 8站点上创建一个迷你CRUD组件。我从外部源获取数据,并使用ReactJS进行呈现。
当用户单击React组件中的按钮时,我希望更新数据库。
<button
onClick={() =>
$.ajax({
type: "POST",
url: "../path-to-file/script.php",
data: { id: 'some data' },
})}
>
click me
</button>index.js),script.php)将React组件连接到自定义PHP脚本。mymodule.module)。但是,我不知道如何将自定义PHP (script.php)连接到模块(mymodule.module)以执行更新。
任何帮助都将不胜感激!
发布于 2021-06-30 05:03:45
使用AJAX让用户通过自定义PHP脚本任意地将数据插入数据库似乎是个坏主意,因为它通过绕过Drupal的安全性打开了进入Drupal的后门。
要以"Drupal“的方式完成此操作,您可以使用核心中的JSON:API模块来处理CRUD操作。这是一个过于宽泛的话题,无法在这里进行深入的描述,但是Drupalize.me有一个很好的(付费)教程。
这允许您使用与Drupal网站相同的访问权限,在Drupal实体(节点、媒体、分类法术语等)上使用JSON:API。
要使用这种方法,您需要配置Drupal中的实体,以便它们在通过JSON:API更新时正确地接收数据。
我将创建一个新的资源:API资源,而不是使用自定义PHP脚本,它允许您通过自定义JSON:API端点执行任意类型的处理。通过这样做,您将获得构建在Drupal核心中的所有数据净化好处。
https://drupal.stackexchange.com/questions/303834
复制相似问题