根据我们的需要编辑 laravel 5.2 的 vendor 文件夹中的文件是否正确?

Is it correct to edit the files inside vendor folder of laravel 5.2 as per our needs?

我是 laravel 的新手,正在做一个示例项目作为学习目的。我使用以下命令创建了身份验证:

php artisan make:auth 

我在 Authcontroller.php 中为所有成功的 login/registration 提供了重定向 link 作为:

protected $redirectTo = '/admin';

所有这些都工作正常,我的问题是当我尝试使用 laravel 5.2 内置 auth 控制器上的密码重置选项重置密码时,我能够用新密码重置旧密码。但在重置我的密码后,它被重定向到 link,例如 laravel.com/home。它不会根据我在 Authcontroller.php 中给出的重定向 link(受保护的 $redirectTo = '/admin';)举例 laravel.com/admin。

在浏览我的 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,并且我的密码重置成功后有关重定向的问题已得到修复。但我不知道这是否是正确的方法??像我上面那样编辑供应商文件夹中的文件的正确方法吗?请帮我。提前致谢。

下次 运行 composer update 时,在 vendor 目录中所做的任何更改都将被撤消。

您永远不应该触摸或弄乱 vendor,因为它 完美

您已在 AuthController 中设置 $redirectTo link,但尚未在 PasswordController 中设置。

由于两个控制器处理完全不同的功能,$redirectTo link 不会从一个控制器转移到另一个控制器。

要将 PasswordController 设置为重定向到您的管理路由,只需像 AuthController:

一样添加此行

protected $redirectTo = '/admin';

你找到的redirectPath函数只是检查$redirectTo路径是否在别处设置,否则会重定向到/home。然而,如前所述,您不应该在 vendor 文件夹内编辑任何内容,否则每当您 运行 composer update 文件更新时,它将覆盖您的任何更改。