routing_id
が与えられた行でaddress
が一意であるかどうかを確認する検証ルールを作成する必要があります。それは簡単です。しかし、場合によってはrouting_id
フィールドがNULL
である可能性があり、次に妥当性検査リクエストルールが機能しません。ここでララール検証 - nullableでユニークです
は私のルールです:
$rules['address'] = 'required|ip|unique:vias,address'.\Route::current()->getParameter('via')->id.',id,routing_id,'.request()->input('routing_id'));
私は私のPOST
配列にrouting_id
としてnull
で行にパッチを適用しています私は私のaddress
がゼロにrouting_id
フィールドを持つすべての行内で一意になりたいです。しかし、それは動作しません。
私の質問です:どのようにそれを解決するには?
なぜあなたはこれを連結しましたか? 'address '。\ Route :: current() - > getParameter(' via ') - > id.''2番目はL5.4を使用していますか? – Digitlimit
ユニークなルールの必要性:テーブル( 'vias')、カラム(' address')、パッチ適用時に無視されるID( '\ Route :: current() - > getParameter( 'via') - > id')、 idカラム( 'id')を追加し、次に条件を追加します:それで' routing_id'は与えられた 'routing_id'ポスト値と等しくなります。 (プロジェクトはL5.3を使ってビルドされましたが、まだ5.4に更新されていませんでした) – piotr
覚えておいてください:unique:table、column、except、idColumn その場合は次のようにしてください: '$ routing_id = \ Route :: current() - > getParameter( 'via') - > id; "必須| ip |ユニーク:ビア、アドレス、{$ルーティング_ ID}、ルーティング_ID" – Digitlimit