模型中未定义 属性
Undefined property in model
用户模型:
class User extends Authenticatable
{
use Notifiable;
protected $table = 'users';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token', 'role_id',
];
protected $appends = [
'role',
];
public function getRoleAttribute()
{
return $this->role->name;
}
/**
* User role.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function role()
{
return $this->belongsTo('App\Role');
}
}
我不想显示角色名称,而是角色 ID。
但是它说:
第 38 行 User.php 中的错误异常:
未定义 属性:App\User::$角色
角色 table 包含一个 id 和 name
用户 table 包含 role_id
编辑:
当我尝试 return $this->role()->name;
时,它给了我一个:
第 38 行 User.php 中的错误异常:
未定义 属性: Illuminate\Database\Eloquent\Relations\BelongsTo::$name
但我检查了角色并且有效...
/**
* Check if the user is an admin.
*
* @return bool
*/
public function isAdmin()
{
if ($this->role->name == 'admin') {
return true;
}
return false;
}
使用关系,而不是属性:
{{ $user->role()->name }}
因为你有role属性和role关系,尝试重命名其中之一,它会与return $this->role->name;
用户模型:
class User extends Authenticatable
{
use Notifiable;
protected $table = 'users';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token', 'role_id',
];
protected $appends = [
'role',
];
public function getRoleAttribute()
{
return $this->role->name;
}
/**
* User role.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function role()
{
return $this->belongsTo('App\Role');
}
}
我不想显示角色名称,而是角色 ID。
但是它说:
第 38 行 User.php 中的错误异常: 未定义 属性:App\User::$角色
角色 table 包含一个 id 和 name
用户 table 包含 role_id
编辑:
当我尝试 return $this->role()->name;
时,它给了我一个:
第 38 行 User.php 中的错误异常: 未定义 属性: Illuminate\Database\Eloquent\Relations\BelongsTo::$name
但我检查了角色并且有效...
/**
* Check if the user is an admin.
*
* @return bool
*/
public function isAdmin()
{
if ($this->role->name == 'admin') {
return true;
}
return false;
}
使用关系,而不是属性:
{{ $user->role()->name }}
因为你有role属性和role关系,尝试重命名其中之一,它会与return $this->role->name;