我在使用树行为保存记录时遇到问题。如果更改了记录的parent_id,则保存将失败。
我的CmsPost
模型看起来像这样。
class CmsPost extends CmsAppModel
{
/**
* Alias for the model.
*/
public $name = 'CmsPost';
/**
*
* @var array The behaviors for this model.
*/
public $actsAs = array(
'Tree' => array(
'left' => 'left_id',
'right' => 'right_id'
)
);
}
保存记录工作正常。 SQL转储在历史记录中显示此更新。
更新
cgtag
。cms_posts
设置title
='其他内容',key
='somethingelse',desc
='',{{1} } ='',content
= NULL,parent_id
='review',status
= 0,image_count
='2013-02-03 17:39:00',published
='2013-02-03 17:42:00',created
='2013-02-03 17:47:00'在哪里updated
。cgtag
。cms_posts
='1'
问题是Tree行为中的id
回调失败并出现此错误。
afterSave
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND' at line 1
SQL Query: UPDATE `cgtag`.`cms_posts` AS `CmsPost` SET `CmsPost`.`left_id` = `CmsPost`.`left_id` + 1 WHERE `CmsPost`.`left_id` BETWEEN AND
条件错误。 WHERE
已设置值。
我不知道如何解决这个问题。
答案 0 :(得分:0)
好的,我解决了这个问题。
表格的left_id
和right_id
列不能是可空字段。必须将默认值设置为0
。