2016-08-28 71 views
2

我的架構如下:我如何在laravel中使用關係?

channel table: 
id int unsigned primary key auto increment, 
name varchar(30) not null, 
... 

category table: 
id int unsigned primary key auto increment, 
channel_id int unsigned index, 
name varchar(30) not null, 
... 

article table: 
id int unsigned primary key auto increment, 
category_id int unsigned index, 
title varchar(90) not null, 
content text not null, 
... 

所以,每一篇文章都屬於一個特定的類別和類別屬於特定的通道。

我的問題是:

我如何可以搜索所有與類別名稱和頻道名稱的文章(的關係是在我的代碼準備好)?

我曾嘗試

$articles = App\Article::latest()->with('category')->with('channel')->get(); 

,但它不工作,誰可以幫我?感謝您的時間。

回答

0

如果你想通過你應該使用相關的表搜索加入這樣的:

$articles = App\Article::latest() 
    ->select('article.*') 
    ->join('category', 'category.id', '=', 'category_id') 
    ->join('channel', 'channel.id', '=', 'channel_id') 
    ->where('category.name', 'LIKE', "%{$name}%") 
    ->orWhere('channel.name', 'LIKE', "%{$name}%") 
    ->groupBy('article.id') 
    ->get(); 
+0

謝謝你的建議〜 – Snriud

相關問題