Доброго времени суток, друзья. Помогите разобраться, а то уже голову сломал... Задача - после авторизации на странице /login нужно сделать редирект на страницу пользователя с id в URL. Пример ниже.
Сейчас у меня прописано в LoginController.php такое:
protected $redirectTo = '/profile';
То есть редиректит на страницу /profile, однако нужно сделать вот так как-то:
protected $redirectTo = '/profile/{$id}';
То есть, чтобы в URL добавлялся id залогиненного пользователя.
В routers/web.php у меня прописано такое:
Route::get('profile/{id}', 'HomeController@index');
То есть при переходе на страницу /profile/user-id открывается страница с информацией о пользователе с указанным в URL id. Но в LoginController.php так не получается... когда прописываю protected $redirectTo = '/profile/{$id}';
то все работает, но только URL такого вида /profile/%7Bid%7D
Что не так делаю? Я так понимаю, что ID почему-то воспринимается как строка, а не цифра.
В документации написано, что если вам нужно использовать какую-то логику для редиректа, то свойство protected $redirectTo
можно заменить на метод
protected function redirectTo()
{
// Получить $id
return '/profile/' . $id;
}
Давайте просто посмотрим на класс App\Http\Controllers\Auth\LoginController
, этот класс использует особенность: AuthenticatesUsers
,
Теперь давайте заглянем в эту особенность, она в свою очередь использует еще 2 особенности: RedirectsUsers
, ThrottlesLogins
Из вашего вопроса, сразу понятно, что нам нужна первая, давайте посмотрим на нее:
namespace Illuminate\Foundation\Auth;
trait RedirectsUsers
{
/**
* Get the post register / login redirect path.
*
* @return string
*/
public function redirectPath()
{
if (method_exists($this, 'redirectTo')) {
return $this->redirectTo();
}
return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
}
}
Единственный метод, который в ней реализован - redirectPath, который проверяет есть ли метод redirectTo(), если его нет, то будет попытка перейти по свойству redirectTo, если нет и его то идет в /home
остается создать метод в классе LoginController:
protected function redirectTo(){
return url('/profile/',auth()->user()->id);
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Нужно получить php файл как текст, естественно не выполняя код в самом файле, то есть только прочитать его
на сайте есть текст в теге а в file get contents нет как сделать так что бы не было пусто в теге
Не получается спарсить никакую информацию из таблиц, только из шапки, с этих двух сайтовhttp://livvved