我試圖爲我的Laravel應用程序創建一個搜索表單。基本上用戶可以輸入一些字段(可搜索的模型相關的,如標題)並以不同的方式對其進行排序;標題,創建日期,還可以計票或計數。最後兩個是數據透視表(多對多關係)的結果。創建一個由模型屬性和相關軸數組成的字段排序的搜索表單
我一直在努力,但我不知道如何繼續。這是我到目前爲止:
public function search(SearchRequest $request)
{
$posts = Post::where('published', 1);
if (strlen($request->title) > 0) {
$posts->where('title', 'like', '%' . $request->title . '%');
}
switch($request->order_by) {
case 'title' : $orderBy = 'title'; break;
case 'createDate' : $orderBy = 'created_at'; break;
case 'favorites' : $orderBy = 'post_favorites.count(*)'; break;
case 'votes' : $orderBy = 'post_votes.count(*)'; break;
}
$posts->orderBy($orderBy, $request->order_by_direction);
$posts = $posts->get();
var_dump($posts);
}
爲了保持簡單,我已將代碼重寫爲典型的博客文章示例。感謝您的建議。
以獲得更多的一個小細節,在你上面的例子你只按標題搜索,但顯示已選擇依賴於4個選項的結果?但是,如果沒有標題只是返回所有用戶或請求發佈的帖子?如果沒有,那麼你就可以將它包圍在if等等中,? –
有點難以知道你正在嘗試着什麼。你能否澄清你正在尋找什麼或問題在哪裏? – user3158900