2013-07-02 1 views
1

У меня возникли проблемы с Laravel 4 этого не произошло с 3.Повторное использование отношения в модели в Laravel

В модели Permissions_Role у меня есть эта связь установить.

/** 
* User Relationship 
* 
* @return User 
*/ 
public function user() 
{ 
    return $this->belongsTo('User', 'user_id'); 
} 

Теперь я хочу использовать его позже в модели, чтобы получить имя пользователя этого пользователя. В laravel 3 это можно сделать следующим образом.

return ucword($this->user()->first()->username); 

Однако, в четыре, он, кажется, не возвращает объект так же, как и я не могу показаться, чтобы выяснить новый синтаксис для него. Ниже я пытаюсь в настоящее время.

/** 
* Get username 
* 
* @return string 
*/ 
public function getUsernameAttribute() 
{ 
    return ucwords($this->user()->first()->username); 
} 

Любая помощь в этом была бы принята с благодарностью. Спасибо :)

+0

Вы уверены, что Permissions_Role 'belongsTo' пользователя? Или 'hasMany'? –

+0

Также вы можете разместить больше своих моделей? Трудно понять, какая именно модель. –

+0

Это была ошибка пользователя. Я извиняюсь. –

ответ

1

Вы не должны писать() больше, его автоматически CASTET в собственность

новый: $this->user->username вместо $this->user()->username