簡體   English   中英

laravel中if條件加入查詢

[英]If condition joined query in laravel

我通過基於 IF 條件連接 2 個表在 Laravel 中進行了查詢。 我需要添加一個 where 查詢以根據連接表中的 material_id 列過濾數據。

$transactions = DB::table('transactions')
    ->select('transactions.id', DB::raw("IF(transactions.is_sell = '1', advertisements.material_id, offerrequests.material_id) as material_id"))
    ->leftJoin('advertisements', function ($join) {
        $join->on('advertisements.id', '=', 'transactions.post_id');
    })
    ->leftJoin('offerrequests', function ($join) {
        $join->on('offerrequests.id', '=', 'transactions.post_id');
    });

我嘗試了以下操作,它正在使用連接表中請求的 material_id 查詢數據。 但最后我也可以看到與輸入中的“material_id”不相似的交易價值。 我只需要獲取與相同材料 ID 完全匹配的數據。

$transactions = $transactions->where(function ($query) use ($request) {
                $query->where('advertisements.material_id', $request->material)
                    ->orWhere('offerrequests.material_id', $request->material);
                })->get();    

試試下面...而不是 orwhere try andWhere

$transactions = $transactions->where(function ($query) use ($request) {
                $query->where('advertisements.material_id', $request->material)
                    ->andWhere('offerrequests.material_id', $request->material);
                })->get();

或者

$transactions = $transactions ->where('advertisements.material_id', $request->material);
$transactions = $transactions ->where('offerrequests.material_id', $request->material);
$transactions = $transacions ->get();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM