Я новичок в laravel и делаю образец проекта в качестве учебной цели. Я создал аутентификацию с помощью команды:

php artisan make:auth 

Я дал ссылку перенаправления в Authcontroller.php для успешного входа / регистрации как:

protected $redirectTo = '/admin';

Все эти вещи работают нормально, и моя проблема в том, что когда я пытаюсь сбросить пароль с помощью опции сброса пароля на встроенном контроллере аутентификации laravel 5.2, я могу сбросить свой старый пароль с новым. но после сброса моего пароля он перенаправляется на ссылку, например examplelaravel.com/home. Он не будет переходить на examplelaravel.com/admin согласно ссылке перенаправления (protected $ redirectTo = '/ admin';), предоставленной мной в Authcontroller.php.

Просматривая все файлы в моем проекте laravel, я увидел файл с именем vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Auth \ RedirectsUsers.php, который содержит такой метод, как:

public function redirectPath()
{
    if (property_exists($this, 'redirectPath')) {
        return $this->redirectPath;
    }

    return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
}

Я изменил / home на / admin в указанном выше файле, и моя проблема, связанная с перенаправлением после успешного сброса пароля, была исправлена. Но я не знаю, правильный это метод или нет ?? Это правильный способ редактировать файлы внутри папки поставщика, как я сделал выше? Пожалуйста, помогите мне. Заранее спасибо.

1
Mahesh A R 20 Фев 2016 в 00:59

2 ответа

Лучший ответ

Вы установили ссылку $redirectTo в своем AuthController, но еще не установили ее в своем PasswordController.

Поскольку два контроллера выполняют совершенно разные функции, ссылка $redirectTo не переносится с одного на другой.

Чтобы настроить PasswordController на перенаправление на ваш административный маршрут, просто добавьте эту строку, как и для AuthController:

protected $redirectTo = '/admin';

Найденная вами функция redirectPath просто проверяет, установлен ли путь $redirectTo в другом месте, в противном случае выполняется перенаправление на /home. Однако, как уже было сказано, вы не должны ничего редактировать в папке vendor, иначе при каждом запуске composer update все ваши изменения будут перезаписаны при обновлении файлов.

2
James 19 Фев 2016 в 22:54

В следующий раз, когда вы запустите composer update, все изменения, внесенные в каталог vendor, будут отменены.

Никогда не трогайте vendor или возитесь с ним, поскольку он безупречный .

7
user2094178 3 Июл 2017 в 19:22