2016-04-18 4 views
0

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

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

form action="{{route('register')}}" method="post" 
+0

Вам нужна простая проставка для формы и перенаправление на другой URL-адрес или что-то наподобие, если вы не вошли в систему, чтобы перенаправить вас на страницу регистрации? –

ответ

0

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

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

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

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

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

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

return redirect()->guest('register'); 
+0

Ваш способ будет работать, но если пользователь уже выполнил вход в систему, я хочу, чтобы они были перенаправлены на панель инструментов после настройки. – Slillz

+0

@Slillz Извините, но я немного смущен. Что вы хотите, чтобы отправить форму? Если пользователь вошел в систему и отправил форму поиска, вы хотите, чтобы они просто искали. Пользователи, перенаправляющиеся на свою панель управления, представляют собой другой вопрос, на который я отвечу, как только мы разрешим ваш текущий запрос. – Rash

+0

Все, что я хочу сделать, это то, что, когда пользователь, который не подписан на сайт, нажимает кнопку поиска на приветственном представлении, пользователь перенаправляет представление регистра. В будущем, когда я создам его панель управления, если пользователь уже подписан, они будут перенаправлены на представление панели мониторинга, но это не так. – Slillz

1

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

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

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

Route::post('register' , '[email protected]'); 

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

public function register(){ 
    return view('register.form'); 
} 
+0

После внесения изменений, которые вы предложили, я получаю сообщение об ошибке ... «Маршрут [регистр] не определен. (View: /var/www/laravel/resources/views/welcome.blade.php). ' Это похоже на действие этой формы, потому что, когда я удаляю {{route ('register')}} из этого '

' и оставьте его пустым. Ошибка исчезнет. – Slillz

+0

в вашем файле маршрута вы можете сделать это: Route :: post ('register', ['as' => 'register', 'uses' => 'YourControllerName @ register']); Возможно, он может решить ваши проблемы с помощью {{route ('register')}} –

+0

первым аргументом является URI, который будет отображаться в вашем браузере, «как» является псевдонимом этого маршрута, а «uses» - это действие для этого route (Ваш контроллер) –