2017-05-24 72 views
0

我在我的雄辯模型中定義了自定義查詢,我想知道在獲取模型時包含結果的最佳方式是什麼。在Laravel中使用自定義查詢返回模型

我知道有受保護的$ with,但只接受關係,然後有$追加,但這是屬性和我的查詢返回整個對象,我不知道是否是好主意,將它包含爲屬性。另外,如果在模型方法中有這樣做的話,我想知道它,因爲我不一定需要在每個模型實例上都有這個信息。

期待聽到您的建議。

編輯: 我熟悉$與關係。 什麼我問的是如何得到這樣的事情渴望負荷:

public function thisIsMyQuery() 
{ 
    return DB::table('example')->where('const', '>', 3); 
} 

回答

0

如果我理解正確的話你的需要,你只是想急於負載的關係。爲此,您必須在模型中定義一個關係,並在$with數組內部添加方法的名稱。

例如:

// Inside your model class 

class Post extends Model 
{ 
    protected $with = ['comments']; 

    public function comments() 
    { 
     return $this->hasMany(Comment::class); 
    } 
} 

// Usage 

$post = Post::find(1) 
$post->comments; // here are the related comments 
+0

不,我想我已經創建了渴望加載自定義數據庫查詢。所以這不是一個關係,因爲它不是一個關係,我不能使用$和。 –

+0

爲什麼你想加載一個自定義查詢,而不是之後運行它? –

+0

那麼,有什麼區別不是關係只是一個查詢的藍圖。我所問的只是能否做到。如果查詢可以返回與關係相同的數據,爲什麼它不能夠急切加載是我的問題?如果我沒有弄錯,那麼比在頁面上進行大量查詢更好。 –

相關問題