Подтвердить что ты не робот

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)
{
    //
}

Как я могу проверить входные значения пользователя и значения ввода роли с помощью подхода "Запрос"?  (и имеют конкретную обратную связь, если проверка не выполняется)

4b9b3361

Ответ 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']