Я использую Laravel 5.2. У меня есть простая форма на главной странице. Когда пользователь нажимает кнопку поиска в этой форме, он должен отправить его на страницу регистрации. Это просто фиктивная форма, поэтому данные не отправляются. Я не уверен, что мне нужно поместить в файл маршрутов. Нужно ли мне что-то помещать и в файл моих контроллеров? Любая помощь будет оценена по достоинству.

Это то, что у меня на главной странице ...

form action="{{route('register')}}" method="post"
1
Slillz 18 Апр 2016 в 13:35

2 ответа

Лучший ответ

Итак, вы хотите перейти на страницу «регистрации» после отправки формы. Почему вы хотите это сделать? Хотя, если вы хотите это сделать, ответ @Vinicius правильный. Я думаю, что вам нужно - «Если мои пользователи вошли в систему, тогда выполните поиск, а не перейдите на страницу регистрации» .

Чтобы сделать то, что я предлагаю, вам необходимо распределить маршруты по категориям в промежуточном программном обеспечении.

Итак, в вашем файле маршрутов вы определите этот маршрут.

Route::post('search', ['middleware' => 'auth', function () {
    return view('search');
}]);

Этот маршрут гарантирует, что метод «функции поиска» доступен только тогда, когда вы вошли в систему. Если laravel обнаружит, что пользователь не вошел в систему, он автоматически перенаправит пользователя на страницу register.

Для получения дополнительной информации просмотрите этот код. Это функция промежуточного программного обеспечения, которая определяет, вошел ли пользователь в систему или нет. Как видите, laravel по умолчанию перенаправляет пользователя на страницу входа. Чтобы вы могли перенаправить пользователя на страницу регистрации, измените строку на эту.

return redirect()->guest('register');
1
Rash 18 Апр 2016 в 15:04

Вам нужно будет добавить оператор перенаправления с представлением формы, например, в свой файл маршрутов:

Route::post('register' , function(){
    return view('register.form');
});

Вы можете добавить этот оператор возврата в контроллер, и ваш файл маршрута будет примерно таким:

Route::post('register' , 'YourControllerName@register');

И ваш контроллер:

public function register(){
    return view('register.form');
}
1
Vinicius Luiz 18 Апр 2016 в 14:51