Laravel 5 - Проверить множественный запрос
возможно ли в Laravel 5 проверить несколько запросов для вставки связанных моделей после отправки формы?
Я знаю, как проверять несколько моделей с помощью Validators, но я хочу сделать это с помощью класса запросов.
Laravel 4:
$validateUser = Validator::make(Input::all(), User::$rules);
$validateRole = Validator::make(Input::all(), Role::$rules);
if ($validateUser->fails() || $validateRole->fails()){
$validationMessages = array_merge_recursive(
$validateUser->messages()->toArray(),
$validateRole->messages()->toArray()
);
}
Laravel 5:
Запросить один
class CreateUserRequest extends Request {
public function rules()
{
//
}
}
Запросить два
class CreateRoleRequest extends Request {
public function rules()
{
//
}
}
Запрос модели контроллера:
public function store(CreateUserRequest $request, CreateRoleRequest $request2)
{
//
}
Как я могу проверить входные значения пользователя и значения ввода роли с помощью подхода "Запрос"?
(и имеют конкретную обратную связь, если проверка не выполняется)
Ответы
Ответ 1
Во-первых, использование нескольких классов запросов формы отлично работает.
Теперь, конечно, вы не можете просто иметь две формы в одном. Однако для разделения данных вы можете использовать синтаксис массива для имен полей:
<input type="text" name="user[name]" />
<!-- and later -->
<input type="text" name="role[name]" />
В ваших правилах проверки вы можете использовать синтаксис точки для ссылки либо на имя пользователя, либо на имя роли:
public function rules(){
return [
'role.name' => 'required'
];
}
И для создания двух моделей просто используйте это, чтобы получить все атрибуты для user
и role
:
$request->input('user'); // returns an array like ['name' => 'foo', 'other-user-field' => 'bar']
$request->input('role'); // returns an array like ['name' => 'baz', 'other-role-field' => 'boom']