首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node_save()空tid列

node_save()空tid列
EN

Drupal用户
提问于 2018-09-21 13:55:07
回答 1查看 184关注 0票数 0

我正试图像这样以编程方式创建一个节点,

代码语言:javascript
复制
$newNode = (object) NULL;
$newNode->type = 'job';
$newNode->title = $data['JobTitle'];
$newNode->uid = $user->uid;
$newNode->created = strtotime("now");
$newNode->changed = strtotime("now");
$newNode->status = 1;
$newNode->comment = 0;
$newNode->promote = 0;
$newNode->moderate = 0;
$newNode->sticky = 0;
$newNode->tid = 0;

$newNode->summary['und'][0]['value'] = $data['JobSummary'];
$newNode->body['und'][0]['value'] = $data['JobDescription'];
$newNode->field_employment_type['und'] = strtolower($data['JobType']);
$newNode->field_job_reference['und'][0]['value'] = $data['JobReference'];
$newNode->field_salary['und'][0]['value'] = "";
$newNode->field_salary_from['und'][0]['value'] = $data['SalaryFrom'];
$newNode->field_salary_to['und'][0]['value'] = $data['SalaryTo'];
$newNode->field_salary_override['und'][0]['value'] = $data['Salary'];
$newNode->field_application_email['und'][0]['value'] = $data['ApplicationEmail'];
$newNode->field_job_category['und'][2] = 2;
$newNode->field_job_category['und'][4] = 4;

//die(print_r($newNode));
// save node
node_save($newNode);

在这里,我可能有4个分类(他们的id显示在括号内)创意(2),技术(3),营销(4),客户服务(6)。

node_save上,我得到以下错误:

500内部服务器错误:发生错误(23000):SQLSTATE:完整性约束违反: 1048列'tid‘不能为空

如何克服这个问题--我认为将field_job_category设置为分类法的id就足够了?

EN

回答 1

Drupal用户

发布于 2018-09-21 15:05:30

如果有一个按节点划分的tid,请使用:

代码语言:javascript
复制
$tid = 0;    
$newNode->taxonomy[0]->tid = $tid;

如果节点可以有多个术语使用:

代码语言:javascript
复制
$tids = [0, 3, 4, 5];
$i = 0;
foreach ($tids as $tid) {
  $newNode->taxonomy[$i]->tid = $tid;
  $i++;
}
票数 1
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/269734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档