私の現在のジレンマがこれです使用してフォーム要求を検証します。この表1を呼ぶ。Laravelは:私は私はそれは私がデータベーステーブルから削除したいどの行を示して提出フォームを持っている</p> <p>:データベーステーブル「ではないにここで」
ただし、行のIDが別の表にある場合(外部キー制約がある場合)は、この行を削除できません。この表2を呼び出します。
つまり、行のIDがtable2で参照されていない場合は、table1から削除してください。
PHPでは、これはわかりやすいものです。そして正直なところ、コントローラの内部ではPHPでハードコードできますが、他のすべての機能はエラー処理を使用しているため、Laravelの検証エラーを使用したいと考えています。私が確認したいPHPの同等はこのようなものです:
foreach($result->id as $id){
if (DB::table('table2')->where('fk_column', $id)->count() == 0){
DB::table('table1')->where('id', $id)->delete();
}
}
は、私は私の問題は、コードがどのように動作するかの十分な説明があり、そのどこにも答えを見ていませんよ。これを具体的に行い、エラーを吐き出す検証ルールを作成する方法はありますか? PHPコードを実行し、エラー配列に入れることができるエラーをスローする方法はありますか?
:だからhttps://laravel.com/api/5.4/Illuminate/Validation/Rules/Exists.html#method_whereNot
利用可能whereNot()メソッドは、私が(警告され、私はそれをテストしていない)と思いますが、それをこのような何かを書きたいです箱の中に何かがある場合は、カスタム検証ルールを書く必要があります。 https://laravel.com/docs/5.4/validationこれは 'exists'ルールとは逆の並べ替えです。 – Giedrius