我认为问题是不言自明的。
例如,我需要一个名为" person"的内容类型。有2个字段(姓名,年龄)。
我试过googling等,但是虽然有很多参考文献" drupal 7以编程方式添加内容类型",我找不到Drupal 8的参考资料。
我能够在Drupal 7中创建内容类型,但似乎情况有所改变。
欢迎任何参考(如果不是完整代码)。
答案 0 :(得分:0)
我设置了一个Drupal 8后端,启用了REST API视图,并使用jQuery创建了一个简单的前端。 jQuery会将一个新的内容类型发布到一个与REST API交互的php页面。这是我用来创建节点数组并将其发送到站点的代码:
$node = [
'_links' => [
'type' => ['href' => 'http://<SITE URL>/rest/type/node/page']
],
'title' => [
0 => ['value' => "New Node Title"]
]
];
$data = json_encode($node);
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => '<SITE URL>/entity/node',
CURLOPT_HTTPHEADER => ['Content-type: application/hal+json'],
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $data,
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_USERPWD => '<USERNAME>:<PASSWORD>',
]);
echo curl_exec($ch);
困难的部分是正确构建节点阵列结构。
答案 1 :(得分:0)
与任何事情一样,有几种方法可以给这只猫留下光泽。
答案 2 :(得分:0)
只需使用Drupal安装创建内容类型(空测试即可)。为了让生活更轻松,请使用机器名称中的一些不同文本。示例:假设mkk是您的模块名称,请为您的内容类型mkk_person创建机器名,字段machine-name field_mkk_person_name。 完成后,转到(测试)安装目录并在终端&#34; drush -y cex&#34;)中运行。在目录... / sync(它将显示完整的名称)中,您将找到名称中包含mkk的文件。将这些文件复制到目录... modules / mkk / config / install中,然后就完成了。
您仍然可以更改内容类型并重做操作,但由于遍布整个地方都有uuid(查看文件),我认为您必须保持这些uuid完好无损。因此,重新使用测试机器或首先安装新模块。