亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Laravel 雄辯查詢中獲取 NULL/空列

在 Laravel 雄辯查詢中獲取 NULL/空列

PHP
HUWWW 2023-10-15 17:10:48
目前我正在 Laravel 上開發 ajax 搜索過濾器,但我無法獲得正確的信息,情況如下:我有 2 張桌子:表1:軟件請求表2:拒絕類別通過選擇選項,我將名稱命名為 Value我在控制器功能的查詢頂部添加了該選擇選項:$deniedReason = $request->get('deniedReason');        if($deniedReason == "All"){            $deniedReason = "";        }所以這意味著每次我選擇“全部”時它都會是空的,這樣我就可以獲得像空一樣的所有數據(這就是問題)。這是我當前的查詢:$request_data = SoftwareRequest::leftJoin('DenyCategory', 'SoftwareRequest.DenyCategoryId', '=', 'DenyCategory.Id')->where('DenyCategory.Name', 'like', '%' . $deniedReason . '%')->paginate(20);所以問題是,如果我選擇另一個選項而不是“全部”,例如“已經可用”,我確實會得到例外的數據,這意味著表 1 中的所有對象與具有該選項的表 2 連接,但問題出現在我選擇“全部”,它不會帶來應有的所有數據,這是因為并非所有對象都DenyCategoryId在 Table1 中,這意味著其中一些對象為空/空,因此它只會帶來我在前一個代碼塊。$deniedReason = $request->get('deniedReason');        if($deniedReason == "All"){            $deniedReason = "";        }當我選擇“全部”選項時如何使所有數據為空或不為空,以及當我選擇另一個選項時如何獲取數據?我敢打賭這與查詢不是“喜歡”有關,但這超出了我的知識范圍。
查看完整描述

1 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

為什么不將該where條款設為可選?


$queryBuilder = SoftwareRequest::leftJoin('DenyCategory', 'SoftwareRequest.DenyCategoryId', '=', 'DenyCategory.Id')


// Only apply where-clause when denied reason has been provided.

if ($request->get('deniedReason') !== 'All') {

? ? $queryBuilder = $queryBuilder->where('DenyCategory.Name', 'like', '%' . $deniedReason . '%');

}


$request_data = $queryBuilder->paginate(20);

查看完整回答
反對 回復 2023-10-15
  • 1 回答
  • 0 關注
  • 170 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號