Я хотел бы добавить пользовательские правила проверки на моем контроллере Laravel:
- Контейнер существует в базе данных
- Зарегистрированный пользователь является владельцем ресурса
Итак, я написал это:
public function update($id, Request $request) {
$validator = Validator::make($request->all(), [
'name' => 'required|unique:stock.containers|max:255'
]);
$container = Container::find($id);
if(!$container)
{
$validator->errors()->add('id', 'Not a valid resource');
}
if($container->owner_id != user_id())
{
$validator->errors()->add('owner_id', 'Not owner of this resource');
}
if ($validator->fails()) {
return response()->json($validator->errors(), 422); //i'm not getting any
}
}
К сожалению $validator->errors()
или даже $validator->addMessageBag()
не работает. Я заметил, что $validator->fails()
очищает сообщения об ошибках, и добавление ошибки не приведет к сбою проверки.
Как правильно достичь этого?