Request
では、type
フィールドがreview
になります。つまり、body
フィールドは6文字以上でなければなりません。Laravel 5.3 - 検証規則の最小値とrequired_ifの問題
public function rules(){
return [
'type' => 'required|in:star_rating,review',
'body' => 'required_if:type,review|min:6'
];
}
しかし、問題はtype
がstar_rating
ときの体はオプションであり、必要とmin:6
type
場合で検証しなければならないため、私は、The body must be at least 6 characters.
これは起こるべきではないというエラーが出るということですreview
です。 type
がstar_rating
であっても、なぜそれがmin:6
検証を実行するのかわかりません。
意図どおりに動作させるにはどうすればよいですか?
で働く
Request
でconditionnalルールを持つ別の解決策は、私はそれが原因 'required_if'だけ_not_' min'ルールに、 'required'ルールを適用するだろうと仮定します。 'required'が適用されない' min'ルールも無視しようとしているようです。ルールを条件付きで追加する(https://laravel.com/docs/5.3/validation#conditionally-adding-rules)を探している可能性があります。これにより、条件がtrueのときに '時には'を定義することができます。上記のリンクの 'closure'ベースのバリデーションをチェックして、必要なものを処理します! – camelCaseリンクのコードを 'authorize'と' rules'という2つの標準関数を持つ 'Request'にどのように統合するのかちょっと混乱しています。それを' Request'に正しく統合する方法はありますか? – Wonka
コメントを入力するのに役立つ回答を追加しました。それが役に立てば幸い! – camelCase