Laravel 5.2アプリケーションで必要とされる固有のバリデーターを、特定のuser_idのテーブル結果のみに対して 'slug'列の一意性をチェックするように制限しようとしています。言い換えれば、スラッグはユニークである必要がありますが、ユーザー単位でのみ必要です。私はstore()関数のために、次のコードで働いています:Laravel 5.2 Validator:特定のユーザーに固有のフィールドチェックを制限する
'slug' => 'required|unique:contents,slug,NULL,id,user_id,' . Auth::id()
それはうまく動作します。しかし、私はupdate()関数を同じように動作させることはできません。なぜなら、現在更新されているエントリの結果に対して一意のチェックを止めるバリデータを取得できないからです。私は現在使用しているコードは次のとおりです。
'slug' => 'required|unique:contents,slug,' . $content->slug . ',id,user_id,' . Auth::id()
コードは、右の私には見えませんが、私はいくつかのバリエーションを試したし、それらのどれも私が望むどのように動作しないこと。私の考えでは、これはうまくいくと思います。
'slug' => 'required|unique:contents,id,' . $content->id . ',user_id,' . Auth::id()
しかし、そうではありません。誰か私の問題がここに何であるか知っていますか?どんな指導も大歓迎です。
を、あなたはあなたではなく、 '$のContentより' $のContent> slug'を、持っていることを知っています> id'?その小さなエラー以外は、私は2番目のコードが動作することを期待します – Jonathon
ええ、私は2番目の行が正しいと思わなかった、3番目の行: 'slug' => 'required | unique:contents、id、' 。 $ content-> id。 '、id、user_id、'。 Auth :: id()は動作すると期待されていますが、動作しません。それは私がそのユーザーのために既に存在するものにスラグをアップデートすることを可能にする。 – Boone
最後のコード行に '、id'がありません。おそらくそれが動作しない理由です。試してください: ''必須|固有:コンテンツ、id、'。 $ content-> id。 '、id、user_id、'。 Auth :: id() ' – Jonathon