だから、私は検証ドキュメントから多くのルールを試しましたが、すべて同じエラーが表示されます
配列から文字列への変換
配列を追加する方法は次のとおりです。
$this->validate($request,[
'employee' => 'required|in:'.$employee->pluck('id')->toArray(),
],[
'employee.in' => 'employee does not exists',
]);
これを達成する方法についてのヒントはありますか?
カスタムバリデーターを作成しましたそれでも配列を渡すことはできないようです
配列を文字列として内破し、コンマで結合します。
'employee' => 'required|in:'.$employee->implode('id', ', '),
これにより、バリデーターがin
比較を行うときに期待する正しいコンマ区切りの文字列が作成されます。
編集
これは引き続き機能しますが、Laravelesqueの方法ではなくなりました。 @nielsianoによる回答を参照してください。
更新:正解で説明されているように、自分で値を内破する代わりに、Ruleクラスを使用できるようになりました。単に行う:
['someProperty' => ['required', Rule::in(['needed', 'stuff'])]];
ドキュメントの「配列の検証」セクションで述べたように: https://laravel.com/docs/5.6/validation#validating-arrays