So, okay i tried a lot of rules from validation docs but all give me same error saying
Array to string conversion
Here is how I add the array:
$this->validate($request,[
'employee' => 'required|in:'.$employee->pluck('id')->toArray(),
],[
'employee.in' => 'employee does not exists',
]);
Any hint on how to achieve this?
i created a custom validator but still passing array seems to be not possible
Update: You are now able to use the Rule class instead of imploding values yourself as described in the correct answer. Simply do:
['someProperty' => ['required', Rule::in(['needed', 'stuff'])]];
As mentioned in the 'validating arrays' section in the documentation: https://laravel.com/docs/5.6/validation#validating-arrays
Implode the array as a string and join it on commas.
'employee' => 'required|in:'.$employee->implode('id', ', '),
This will make the correct comma separated string that the validator expects when making an in
comparison.
Edit
This still works, but is not the Laravelesque way of doing it anymore. See the answer by @nielsiano.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With