2014-09-28 42 views
0

我想搜索給定用戶在給定帖子上製作的相似模型。 我有一個模型爲:郵政根據父母在laravel中查找相關模型

class Post extends \Eloquent 
{ 


    protected $fillable = []; 

    public function likes() 
    { 
     return $this->morphMany('Like', 'likeable'); 
    } 


} 

和一個模型:

class Like extends \Eloquent 
{ 
    protected $fillable = []; 

    /** 
    * @return \Illuminate\Database\Eloquent\Relations\MorphTo 
    */ 
    public function likeable() 
    { 
     return $this->morphTo(); 
    } 

    /** 
    * @return \Illuminate\Database\Eloquent\Relations\BelongsTo 
    */ 
    public function owner() 
    { 
     return $this->belongsTo('User', 'owner_id'); 
    } 

} 

和默認用戶laravel提供模型。

現在我已經詢問模型中使用POST_ID像

$post=Post::find(10); 

用戶找到一個職位模型像

$user=User::find(1); 

現在我想找到像這個用戶提出(1)關於的帖子(10) laravel有沒有這方面的功能。

我知道,我可以直接查詢像使用原始其中功能

\Like::whereLikeableId('10')->whereLikeableType('Post')->whereUserId('1')->get(); 

但是這看起來醜陋,我想知道這樣做的laravel方式。

回答

0

所有你需要的是:

$like = $post->likes()->where('user_id', 1)->first(); 
+0

謝謝您的回答,即工作。有沒有辦法像這樣做:Like :: likeable($ post) - > where('user_id',1),我的意思是相反的方式,這樣就變得獨立於父模型 – manish 2014-09-28 19:53:40

+0

您可以使用'whereHas'但我不認爲這會讓事情變得更容易。你爲什麼要這樣? – 2014-09-29 06:46:14