我真的是新手在這個東西。事情是...我有文章網站。人們可以評價那裏的文章。如果沒有人評價,我可以刪除文章。但如果有人額定文章中,我不斷收到以下錯誤:外鍵違規:7錯誤
PDOException: SQLSTATE[23503]: Foreign key violation: 7 ERROR: update or delete on table "article" violates foreign key constraint "article_rating_item_id_fkey" on table "article_ratings"
DETAIL: Key (id)=(xxxx) is still referenced from table "article_ratings". in /libs/Nette/loader.php:3515 @ http://www.xxxxxx/admin/articleedit/3578?do=deletearticle @@ exception-2014-09-29-18-14-37-b625334b3e569cb7661f1704256874c1.htm
當我檢查該文件中,有跟隨着代碼:
public function handleDeletearticle($id)
{
$article = $this->context->createArticles()->get($id);
$this->context->createArticles()->where("id", $id)->delete();
$this->flashMessage('Done', 'success');
$this->redirect('Admin:articles');
}
能否請你幫我如何解決它?謝謝你在前進
編輯:這是它的外觀Articles.php
public function selectArticleWithRating($slug)
{
$article = $this->query("Select article.*, COUNT(rating.id) AS plus, COUNT(rating2.id) AS minus, \"user\".avatar, \"user\".username
FROM article
LEFT JOIN rating AS rating ON rating.item_id=article.id and rating.type='article' and rating.rate=1
LEFT JOIN rating AS rating2 ON rating2.item_id=article.id and rating2.type='article' and rating2.rate=0
LEFT JOIN \"user\" ON \"user\".id=article.user_id
WHERE slug='$slug'
GROUP BY article.id, \"user\".id");
return $article;
}
不應該有article_ratings
?
您需要首先刪除'article_ratings'中的通訊記錄行,因爲您有'外部文章'的外鍵,它*具有*來引用'article'。 – h2ooooooo 2014-10-01 13:06:41
謝謝。有辦法如何做到這一點在文件中,或者我必須在數據庫中做到這一點? – Charmed 2014-10-01 13:10:20
我不知道你的數據庫類,但我相信你可以做到這一點。查詢是'DELETE FROM table WHERE column = value'。 – h2ooooooo 2014-10-01 13:11:07