Использование запросов и ответов в Laravel

Вот моя форма

{{ Form::open(array('url' => 'register', 'class' => 'form-signin')) }}

// form username , password .. fields here
{{ Form::close() }}

И маршрут

Route::post('register', 'RegisterController@registeruser');

И контроллер это

public function registeruser()
{

//validation

return Redirect::to('/')->withErrors($validator); // main

}

Поскольку я перенаправлен, у меня не будет никаких полей, которые заполняются в форме.

Я знаю, что я должен использовать запрос и ответ для этого.

Я попытался с ответом ниже, даже это ужасная попытка.

return Response::view('home')->header('utf-8', $messages);

Но при выполнении вышеизложенного даже страница перезагружается и значения, заполненные в форме, исчезают. Как я могу через ошибки без пропажи значений?

Есть ли способ заполнить поля в форме как введено?

1

Решение

Вам нужно использовать ->withInput()

return Redirect::to('/')->withInput()->withErrors($validator); // main
2

Другие решения

Вы можете использовать Input :: flash ()

public function registeruser()
{
//validation
Input::flash();

return Redirect::to('/')->withErrors($validator); // main
}

Затем в методе контроллера, который обрабатывает перенаправление, вы можете получить доступ к старому вводу с помощью Input :: old (). Использование Input :: all () вернет данные только для текущего запроса.

Вы также можете использовать цепочечный метод -> withInput () в вашей обратной строке.

Об этом подробнее здесь http://laravel.com/docs/4.2/requests

1

Предположим, у вас есть такая проверка:

$validation = Validator::make($input, $rules);

Тогда вам нужно сделать это:

if( $validation->fails() )
{
return Redirect::back()->withInput()->withErrors($validator->messages());
}

Обратите внимание Redirect::back() что позволяет вам вернуться к вашей форме и заполнить ее автоматически с помощью ввода пользователя

1
По вопросам рекламы [email protected]