2016-08-25 13 views
2

私は3つのテーブル名の記事、コメント、アドレスを持っています。cakephp 3.xカスケード削除が動作しない

articles -> fields(id,title,body) 
comments -> fields(id,article_id,comment) 
addresses-> fields(id,article_id,address) 

と私の記事のコントローラでは、私はdependent => trueかつcascadeCallbacks => trueのままにしています。最初に私は従属=> trueで試してみましたが、カスケードを追加しましたが、まだ動作しません。以下は私のコードです。

$this->hasMany('Comments', [ 
     'className' => 'Comments', 
     'dependent' => true, 
     'cascadeCallbacks' => true, 
    ]); 

    $this->hasOne('Addresses',[ 
     'dependent' => true, 
     'cascadeCallbacks' => true, 
    ]); 

ただし、記事を削除している間は、関連するレコードは削除されません。

public function delete($id = null) 
{ 
    $this->request->allowMethod(['post', 'delete']); 
    $article = $this->Articles->get($id); 
    if ($this->Articles->delete($article)) { 
     $this->Flash->success(__('The article has been deleted.')); 
    } else { 
     $this->Flash->error(__('The article could not be deleted. Please, try again.')); 
    } 

    return $this->redirect(['action' => 'index']); 
} 

私は間違いを教えてください。または任意のコードを追加または変更する必要がありますか? P1が助け

+0

あなたの正確なケーキのバージョンは何ですか? – arilia

+0

私のcakephpバージョン - 3.3.2 – Pavithra

+0

ファイルと名前空間の命名は正しいですか? CommentsTable、AddressesTableなどを意味します.. – arilia

答えて

0

はこれを試してみてください: $this->hasMany('Comments', [ 'foreignKey' => 'article_id', 'dependent' => true, 'cascadeCallbacks' => true ]);

関連する問題