【问题标题】:Is it correct to edit the files inside vendor folder of laravel 5.2 as per our needs?根据我们的需要编辑 laravel 5.2 的 vendor 文件夹中的文件是否正确?
【发布时间】:2016-06-01 15:34:13
【问题描述】:

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

php artisan make:auth 

我已经在 Authcontroller.php 中为所有成功的登录/注册提供了重定向链接:

protected $redirectTo = '/admin';

所有这些工作都很好,我的问题是当我尝试使用 laravel 5.2 内置身份验证控制器上的密码重置选项重置密码时,我可以用新密码重置我的旧密码。但是在重置我的密码后,它会被重定向到 examplelaravel.com/home 之类的链接。根据我在 Authcontroller.php 中给出的重定向链接(受保护的 $redirectTo = '/admin';),它不会进入 examplelaravel.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,并且我在成功重置密码后有关重定向的问题得到了修复。但我不知道这是否是正确的方法?像我上面那样编辑供应商文件夹中的文件是否正确?请帮我。提前致谢。

【问题讨论】:

  • 按照你的说法,PasswordController中的$redirectTo好像没有改。

标签: php laravel authentication url-redirection laravel-5.2


【解决方案1】:

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

你不应该碰或弄乱vendor,因为它是完美的

【讨论】:

    【解决方案2】:

    您已在AuthController 中设置了$redirectTo 链接,但尚未在PasswordController 中设置它。

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

    要将PasswordController 设置为重定向到您的管理员路由,只需像使用AuthController 一样添加此行:

    protected $redirectTo = '/admin';

    您找到的redirectPath 函数只是检查$redirectTo 路径是否已在别处设置,否则它将重定向到/home。但是正如之前所说,您不应该编辑 vendor 文件夹中的任何内容,否则无论何时运行 composer update,它都会在文件更新时覆盖您所做的任何更改。

    【讨论】:

    • 谢谢。起初,我在默认 PasswordController.php 中没有找到类似 protected $redirectTo = '/home'; 的行。因此,正如您所建议的,现在我在 PasswordController 类中添加了 protected $redirectTo = '/admin'; 行,它运行良好,无需对供应商文件夹文件进行任何更改。谢谢。
    猜你喜欢
    • 2013-02-13
    • 1970-01-01
    • 2014-04-08
    • 2019-05-25
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    相关资源
    最近更新 更多