Как перенаправить пользователя на пользовательский URL (просмотреть)?

У меня есть такой URL в Laravel 5:

domain.com/search-user/email@domain.net

Когда я ввожу этот 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);

0

Решение

Я думаю, это будет работать.

return url('/search-user/' . urlencode($request->email));

Обратите внимание, что это меняется @ в %40 (посмотреть здесь), поэтому вам нужно заменить его в том месте, где вы обрабатываете этот запрос.

0

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

в качестве альтернативы тому, что ответил Лоек, вы можете установить аргументы маршрута, используя redirect()->route() метод

Пример:

return redirect()->route('search-user', ['email' =>  $request->email]);

Предполагая, что «электронная почта» является правильным параметром маршрута.

Больше деталей: https://laravel.com/docs/5.3/redirects

0

Если у вас есть маршрут для этого, то вы можете сделать что-то вроде этого,

return \Redirect::route('search-user/example@email.com');
0

Я бы предложил использовать для этого $ _GET, поэтому вместо того, чтобы использовать URL-адрес, сделайте это:

domain.com/search-user/?email=email@domain.net

И измените свой код, чтобы вы обрабатывали $_GET['email'], Это должно помочь с проблемой перенаправления.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector