我正在Laravel
应用程序中进行ajax登录。它在我的本地环境中运行良好,但我将网站移至Production,登录后我看到了这个异常
User.php第29行中的ErrorException:Illuminate \ Foundation \ Auth \ User 和Illuminate \ Auth \ Authenticatable定义相同的属性 App \ User组成中的($ rememberTokenName)。这可能是 不兼容,提高可维护性考虑使用访问器 相反的方法。班级由
组成
我的用户模型为
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable, \Illuminate\Auth\Authenticatable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password', 'first_name', 'last_name', 'hospital_id', 'census_id', 'employee_id'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
答案 0 :(得分:0)
Illuminate\Foundation\Auth\User
已使用use Illuminate\Contracts\Auth\Authenticatable
,因此您基本上应用了两次导致该错误的特征。
以下是Illuminate \ Foundation \ Auth \ User.php
的代码<?php
namespace Illuminate\Foundation\Auth;
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
class User extends Model implements
AuthenticatableContract,
AuthorizableContract,
CanResetPasswordContract
{
use Authenticatable, Authorizable, CanResetPassword;
}
另外一个侧面建议可能会将您的别名位as Authenticable
重命名为AuthUser
/ BaseUser
更明确的内容,因此很明显您正在扩展用户类。