我无法使用 Tree 行为保存记录。如果记录的 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
SETtitle
='其他东西',key
='其他东西',desc
='',content
='',parent_id
= NULL,status
='评论',image_count
= 0,published
='2013-02-03 17:39:00',created
='2013-02 -03 17:42:00',updated
='2013-02-03 17:47:00' 在哪里cgtag
。cms_posts
.id
='1'
问题是afterSave
Tree 行为中的回调因此错误而失败。
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
条件不对。为 设置了值left_id
。
我不知道如何解决这个问题。