2014-04-26 97 views
0

我目前正在嘗試爲客戶端做一個自定義論壇軟件,我使用laravel框架。 「董事會」包含「討論」,有許多「評論」。每個討論都屬於「類別」。Laravel「哪裏」查詢與渴望加載和關係

我現在想要做的是按類別創建概覽。類別是預定義的(如「新聞」,「內部」,「項目」...),並且可以將分配給它們(該類別可以爲空)。

控制器的方法,按類別得到討論,由URL段塞搜索看起來如下:

return View::make('pages.board.overview', [ 
    'discussions', DiscussionCategory::where('slug', $slug)->discussions()->paginate(25) 
]); 

除此之外,它不工作。我想檢索所有與其作者有關的討論(通常我會使用::with('author'),但是在這種情況下還會添加哪些內容?),它們具有指定類別,由25個項目分頁。

如何建立一個查詢來做到這一點?是否可以在一個查詢中執行?

回答

1

這將工作:在關係

DiscussionCategory::where('slug', $slug)->with('discussions.author')->paginate(25) 

設置外鍵:

// Discussion model, the same applies to the Category model 
public function category() 
{ 
    return $this->belongsTo('Umc\Models\DiscussionCategory', 'category_id'); 
} 

分頁討論:

$category = DiscussionCategory::where('slug', $slug)->first(); 
$discussions = $category->discussions()->paginate(25); 
$discussions->load('author'); // eager load authors on the collection 
+0

哇,好不好......幾乎工程。我只是得到了這個錯誤:'SQLSTATE [42S22]:未找到列:1054'where子句'中的未知列'board_discussions.discussion_category_id'(SQL:select * from'board_discussions',其中'board_discussions'.'leleted_at'爲null並且(1)中的board_discussions'.'discussion_category_id') – spaceemotion

+0

然後,您的關係設置不正確。請展示討論模型。 –

+0

好的,這裏是討論模型:http://hastebin.com/onaxosurel.php,這裏是類別模型:http://hastebin.com/sunegokiqi.php – spaceemotion