ツリーの動作を使用してレコードを保存するのに問題があります。レコードの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_postsSETtitle='something else'、key='somethingelse'、desc=''、content=''、parent_id= NULL、status='review'、image_count= 0、published= '2013-02-03 17:39:00'、created= '2013-02 -03 17:42:00'、updated=' 2013-02-0317:47:00'WHEREcgtag。cms_posts。id= '1'
問題は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条件が間違っています。に設定された値がありますleft_id。
これを修正する方法がわかりません。