У меня есть такой URL в Laravel 5:
domain.com/search-user/[email protected]
Когда я ввожу этот URL, он автоматически ищет данные по указанному адресу электронной почты.
Как мне перенаправить пользователя с другого контроллера на этот URL?
Я пытался, но это не работает:
return view(‘controller.search-user')->with('email', $request->email);
Мой маршрутный файл:
Route::post('/search-user', 'tnt6weeklistController@postSearchUser');
Route::get('/search-user/{email}', 'tnt6weeklistController@postSearchUser');
——-РЕШИТЬ ———-
Решена проблема только с этим кодом (возможно, это не лучшая практика, но другие решения не сработали):
return \Redirect::to('http://domain.com/search-user/'.$request->email);
Я думаю, это будет работать.
return url('/search-user/' . urlencode($request->email));
Обратите внимание, что это меняется @
в %40
(посмотреть здесь), поэтому вам нужно заменить его в том месте, где вы обрабатываете этот запрос.
в качестве альтернативы тому, что ответил Лоек, вы можете установить аргументы маршрута, используя redirect()->route()
метод
Пример:
return redirect()->route('search-user', ['email' => $request->email]);
Предполагая, что «электронная почта» является правильным параметром маршрута.
Больше деталей: https://laravel.com/docs/5.3/redirects
Если у вас есть маршрут для этого, то вы можете сделать что-то вроде этого,
return \Redirect::route('search-user/[email protected]');
Я бы предложил использовать для этого $ _GET, поэтому вместо того, чтобы использовать URL-адрес, сделайте это:
domain.com/search-user/[email protected]
И измените свой код, чтобы вы обрабатывали $_GET['email']
, Это должно помочь с проблемой перенаправления.