2016-06-24 6 views
1

私はデータベースと要素に2つのエンティティを持っています。私はセクションモデルで関連するCakePHPの削除2.5.4

public $belongsTo = array(
     'Section' => array(
      'className' => 'Section', 
      'foreignKey' => 'section_id', 
      'conditions' => '', 
      'fields' => '', 
      'order' => '' 
     ) 
    ); 

:私はこれを持っているの.php外部キー

CONSTRAINT `elements_sections` FOREIGN KEY (`section_id`) REFERENCES `sections` (`id`) ON UPDATE CASCADE ON DELETE CASCADE 

要素モデルを有する要素テーブルのよう

1セクションは、0-Nの要素を有する

public $hasMany = array(
    'Element' => array(
     'className' => 'Element', 
     'foreignKey' => 'section_id', 
     'dependent' => false, 
     'conditions' => '', 
     'fields' => '', 
     'order' => '', 
     'limit' => '', 
     'offset' => '', 
     'exclusive' => '', 
     'finderQuery' => '', 
     'counterQuery' => '' 
    ) 
); 

ただし、ID = Xのセクションの要素を削除すると、このコードはすべて見栄えがよくなります。 ID = Xの要素(他のセクションでも)は削除されます。これは私のアプリケーション全体で使用しているコードですが、ここでは失敗します。 $ this-> dataはElementオブジェクトです。

$this->Element->delete($this->data) 

詳細な例:

セクション20 - >要素400 第3節 - 私は要素400を削除した場合>エレメント20

、エレメント20は、あまりにも削除されます。

私は設定パラメータが欠落していると思います。

ありがとうございます。

モデル::削除()複数のレコードを削除することができます。これは助けることができる、同じ問題に直面することができます誰かのために

答えて

0

[ 
    'id' => 1, 
    'category_id' => 3, 
    'price' => 10000, 
] 

生成します

DELETE FROM elements WHERE id IN (1, 3, 10000). 
関連する問題