Laravel关系不起作用,但外键具有值



我有一个用户模型,在模型中我有一个名为 role_id 的整数字段。 如果我在得到一个数字{{ $user->role_id }}回显出该值,我也在用户模型与角色模型上设置了关系,但是如果我尝试这样做{{ $user->role()->role_name }}我会收到以下错误:

Undefined property: IlluminateDatabaseEloquentRelationsHasOne::$role_name 

如果我使用代码{!! AppModelsRole::whereKey($user->role_id)->pluck('role_name') !!}我正确获取值,因此它与我看不到它在哪里的关系有关。

用户模型

public function role()
{
return $this->hasOne('AppModelsRole');
}

榜样

class Role extends Model

{ 使用软删除;

public $table = 'roles';
const CREATED_AT = null;
const UPDATED_AT = null;

protected $dates = ['deleted_at'];

public $fillable = [
'role_name'
];
/**
* The attributes that should be casted to native types.
*
* @var array
*/
protected $casts = [
'id' => 'integer',
'role_name' => 'string'
];
/**
* Validation rules
*
* @var array
*/
public static $rules = [
];
public function users(){
return $this->belongsTo('AppModelsUser');
}

你应该使用魔术属性$role而不是关系定义方法role()。试试这个:

{{ $user->role->role_name }}

相关内容

  • 没有找到相关文章

最新更新