2014-04-08 25 views
0

我有两个模型,主题模型和邮政模型。主题可以有多个帖子。Laravel 4雄辩 - 如何获得对象属性

public function posts() 
{ 
    return $this->hasMany('FPost'); 
} 

我们得到最新帖子的题目我做类似如下的

public function latestPost() 
{ 
    return $this->posts()->where('f_topic_id',"=",$this->id)->take(1); 

} 

,然后我得到的最新帖子属性本身(对特定主题)

{{$topic->latestPost()->first()['title']}} 

现在,我已经尝试过了,但似乎这不适用于我

{{$topic->latestPost()->first()->title}} 

我的问题是为什么我无法获得帖子模型的属性?

更新.. 主题模型看起来像这样

class FTopic extends Eloquent { 
    protected $fillable =['topictitle','topicdescription']; 

    public function forumCategory() 
    { 
     return $this->belongsTo('FCategory'); 
    } 

    public function user() 
    { 
     return $this->belongsTo('User'); 
    } 

    public function posts() 
    { 
     return $this->hasMany('FPost'); 
    } 

    public function latestPost() 
    { 
     return $this->posts()->where('f_topic_id',"=",$this->id)->take(1); 

    } 




    public $rules = [ 
     'topictitle' => 'required|min:10', 
     'topicdescription' => 'required|max:10' 
    ]; 

    public $errors; 

    public function isValid() 
    { 
     $validation = Validator::make($this->attributes, $this->rules); 
     if($validation-> passes()) 
      return true; 
     $this->errors = $validation->messages(); 
     return false; 
    } 







    protected $table = 'ftopics'; 



} 

更新2 这是我如何使用它。 Usage 感谢

+0

凡'latestPost'声明,什么是'$这个 - >帖子() '? –

+0

@ WereWolf-TheAlpha:我已经更新了这个问题。 – Gagan

回答

0

更改latestPost方法:

public function scopeLatestPost($query) 
{ 
    return $this->posts()->orderBy('id', 'desc'); 
} 

然后使用这样的事情:

$ptitle = FTopic::find(1)->latestPost()->first()->title; 
+0

我收到此错误消息:试图获取非对象的属性 – Gagan

+0

不幸的是,有一个错字,更新它,再试一次: - –

+0

没有..我仍然收到相同的消息。请注意,我已经更新了错误发生页面的快照问题。谢谢 – Gagan