2016-08-25 5 views
2

У меня есть 3 таблицы имен статей, комментариев, адресов.cakephp 3.x каскад удалить не работает

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

и в моих конструкторах товаров я поддерживал dependency => true, а также cascadeCallbacks => true. Сначала я попытался с dependency => true, i dint work, а затем добавил каскад, но он не работает. Ниже мой код.

$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']); 
} 

Скажите, пожалуйста, какая ошибка я сделал. или какой-либо код необходимо добавить или изменить? Pl помощь

+0

что ваш точный вариант торта? – arilia

+0

Моя версия cakephp - 3.3.2 – Pavithra

+0

Являются ли имена файлов и пространств имен правильными? Я имею в виду CommentsTable, AddressesTable и т. Д. – arilia

ответ

0

Попробуйте это: $this->hasMany('Comments', [ 'foreignKey' => 'article_id', 'dependent' => true, 'cascadeCallbacks' => true ]);

Смежные вопросы