У меня есть пользовательская модель, в модели у меня есть целочисленное поле с именем role_id.если я выведу это значение {{ $user->role_id }}
и получу число обратно, у меня также будет настройка отношения на модели пользователя с моделью для подражания, но если я попытаюсь сделать {{ $user->role()->role_name }}
, я получу следующую ошибку:
Undefined property: Illuminate\Database\Eloquent\Relations\HasOne::$role_name
Если я использую код {!! \App\Models\Role::whereKey($user->role_id)->pluck('role_name') !!}
, я получаю значение правильно, поэтому оно связано с отношением, которое я просто не вижу, где оно.
Модель пользователя
public function role()
{
return $this->hasOne('\App\Models\Role');
}
Ролевая модель
class Role extends Model
{использовать SoftDeletes;
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('App\Models\User');
}