Правильно ли редактировать файлы в папке vendor в laravel 5.2 в соответствии с нашими потребностями?

Я новичок в 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 в указанном выше файле, и моя проблема с перенаправлением после успешного сброса пароля была исправлена. Но я не знаю, правильный ли это метод или нет?? Это правильный способ редактировать файлы внутри папки продавца, как я делал выше? Пожалуйста, помогите мне. Заранее спасибо.

2 ответа

Решение

Вы установили $redirectTo ссылка в вашем AuthController но вы не установили его внутри PasswordController,

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

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

protected $redirectTo = '/admin';

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

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

Вы никогда не должны трогать или связываться с vendor как это безупречно.

Другие вопросы по тегам