首页 > 解决方案 > laravel 升级到 5.2

问题描述

我正在将 Laravel 从 5.1 升级到 5.2,我的 auth.php

return [

    /*
    |--------------------------------------------------------------------------
    | Default Authentication Driver
    |--------------------------------------------------------------------------
    |
    | This option controls the authentication driver that will be utilized.
    | This driver manages the retrieval and authentication of the users
    | attempting to get access to protected areas of your application.
    |
    | Supported: "database", "eloquent"
    |
    */

    'driver' => 'eloquent',

    /*
    |--------------------------------------------------------------------------
    | Authentication Model
    |--------------------------------------------------------------------------
    |
    | When using the "Eloquent" authentication driver, we need to know which
    | Eloquent model should be used to retrieve your users. Of course, it
    | is often just the "User" model but you may use whatever you like.
    |
    */

    'model' => App\Models\User::class,

    /*
    |--------------------------------------------------------------------------
    | Authentication Table
    |--------------------------------------------------------------------------
    |
    | When using the "Database" authentication driver, we need to know which
    | table should be used to retrieve your users. We have chosen a basic
    | default value but you may easily change it to any table you like.
    |
    */

    'table' => 'users',

    /*
    |--------------------------------------------------------------------------
    | Password Reset Settings
    |--------------------------------------------------------------------------
    |
    | Here you may set the options for resetting passwords including the view
    | that is your password reset e-mail. You can also set the name of the
    | table that maintains all of the reset tokens for your application.
    |
    | The expire time is the number of minutes that the reset token should be
    | considered valid. This security feature keeps tokens short-lived so
    | they have less time to be guessed. You may change this as needed.
    |
    */

    'password' => [
        'email'  => 'emails.password',
        'table'  => 'password_resets',
        'expire' => 60,
    ],

];

新更新的外观应该如何。该文档有一个用于 laravel 5.2 的 auth.php 示例,但我不确定我应该在文件中留下什么以及应该修改什么。当我尝试登录我的应用程序时,我得到 Auth guard [web] 未定义。

标签: laravellaravel-upgrade

解决方案


您应该用this替换整个配置文件,然后根据您的旧配置文件将选项更改为所需的值。

根据您在此处发布的内容,您唯一需要更改的是用户提供者:

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\Models\User::class, // Changed from App\User::class
    ],
],

密码重置邮件的查看路径:

'passwords' => [
    'users' => [
        'provider' => 'users',
        'email' => 'emails.password', // Changed from auth.emails.password
        'table' => 'password_resets',
        'expire' => 60,
    ],
],

尽管将邮件视图移动到 Laravel 建议的新默认位置可能是一个更好的主意:auth.emails.password

从 5.1 升级到 5.2.0

使用新副本更新文件后,根据旧配置文件将身份验证配置选项设置为所需的值。如果你使用的是 Laravel 5.1 中典型的、基于 Eloquent 的身份验证服务,大多数值应该保持不变。

特别注意新 auth.php 配置文件中的 passwords.users.email 配置选项,并验证视图路径是否与应用程序的实际视图路径匹配,因为该视图的默认路径在 Laravel 5.2 中已更改。如果新配置文件中的默认值与您现有的视图不匹配,请更新配置选项。


推荐阅读