2016-07-05 3 views
0

私のプロジェクトでは、関係で接続された2つのテーブル(カテゴリと製品)があります。私は、製品に割り当てられているカテゴリを削除しようとすると、Laravelは返さ:Laravelはエラーに関する新しい情報を作成します

SQLSTATE [23000]:整合性制約違反:1451更新親行を削除したり、 することはできません:外部キー制約は (magazynを失敗productsを。 、CONSTRAINT products_article_id_foreign FOREIGN KEY(article_idarticlesid)を参照)(SQL:id = 23 articlesから 削除)

IはKN OWなぜlaravelこのエラーを返しますが、私は疑問を持っている: 私は情報の例を作成するにはどうすればよい:雄弁経由で実行する場合、「をあなたがこのカテゴリを削除することはできません、それは製品が含まれているため、」クエリで

答えて

2

エラーが返さなければなりませんQueryExceptionオブジェクトです。そのように、あなたはそれをキャッチして、それを解析してメッセージを表示することができます。もちろん、2番目の部分は難しい部分ですが、エラーのバリエーションは非常に多いため、一般的なクエリの問題を検出できる可能性があります。例えば

try { 
    // Run query that might fail here 
} catch(QueryException $e) { 
    if (stristr($e->getMessage(), 'Integrity constraint violation') { 
     return 'Record cannot be deleted or updated because it has related entities!'; 
    } 
} 

あなたは(それが更新されるか削除するかどうか)元のクエリのコンテキストを知っている必要がありますので、あなたはおそらく同様に、その情報に基づいて、エラーメッセージを絞り込むことができます。

関連する問題