第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Laravel 從 RAW 查詢到 Eloquent 查詢

Laravel 從 RAW 查詢到 Eloquent 查詢

PHP
搖曳的薔薇 2023-09-08 14:27:54
我正在嘗試將我的轉(zhuǎn)換Raw query為eloquent query你可以在這里看到 $data = DB::connection('mysql')->select("SELECT product.id, product.title, product.description, product.content, product.photo, product_per_category.productcategory_id, product.quantity, product.price         FROM product LEFT JOIN product_per_category ON product_per_category.product_id = product.id        WHERE product.deleted = 0 AND product_per_category.deleted = 0 AND productcategory_id = '$id' AND (product.title like '%$keyword%' OR product.content like '%$keyword%' OR product.price like '%$keyword%' OR product.quantity like '%$keyword%')                GROUP BY product.id");我有多個(gè)語(yǔ)句與括號(hào)內(nèi)的&WHERE結(jié)合ANDOR我只是想知道我這樣雄辯的查詢是否正確地做到了這一點(diǎn) $data = DB::table('product')    ->select('product.id','product.title','product.description','product.content','product.photo','product.quantity','product.price')    ->join('product_per_category','product_per_category.product_id','=','product.id')    ->where(['product.deleted' => 0])    ->where(['product_per_category.deleted' => 0])    ->where(['product_per_category.productcategory_id' => $id])    ->orWhere('product.content', 'like', '%' . $keyword . '%')    ->orWhere('product.title', 'like', '%' . $keyword . '%')    ->orWhere('product.quantity', 'like', '%' . $keyword . '%')    ->orWhere('product.price', 'like', '%' . $keyword . '%')    ->groupBy('product.id')    ->get();因?yàn)槲蚁胫涝谖业牟樵冎形业腛R括號(hào)內(nèi)有語(yǔ)句。我將它們組合在括號(hào)內(nèi),使其僅是LIKE聲明中可選的字段
查看完整描述

2 回答

?
qq_遁去的一_1

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊

你已經(jīng)非常接近了,但是當(dāng)你需要在括號(hào)之間有條件時(shí),你的 where() 函數(shù)應(yīng)該是一個(gè)回調(diào)。


例如(product.title like '%$keyword%' OR product.content like '%$keyword%' OR product.price like '%$keyword%' OR product.quantity like '%$keyword%') 將是


$query->where(function($subquery) use($keyword) {

    $subquery->where('title', 'like', "%{$keyword}%")

    ->orWhere('content', 'like', "%{$keyword}%");

});

這只是您的要求的一個(gè)粗略示例,但您應(yīng)該得到它。


正如您所知,您可以組合幾乎所有 Eloquent 功能。


祝你好運(yùn)!


查看完整回答
反對(duì) 回復(fù) 2023-09-08
?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以在方法內(nèi)部傳遞一個(gè)閉包where。閉包將接收一個(gè)查詢生成器實(shí)例,您可以使用它來(lái)設(shè)置應(yīng)包含在括號(hào)內(nèi)的約束。

這被稱為parameter grouping。

https://laravel.com/docs/7.x/queries#parameter-grouping

將您的聲明更改為此。

$data = DB::table('product')

    ->select('product.id','product.title','product.description','product.content','product.photo','product.quantity','product.price')

    ->join('product_per_category','product_per_category.product_id','=','product.id')

    ->where(['product.deleted' => 0])

    ->where(['product_per_category.deleted' => 0])

    ->where(['product_per_category.productcategory_id' => $id])

    ->where(function($query) use($keyword){

        $query->where('product.content', 'like', '%' . $keyword . '%')

              ->orWhere('product.title', 'like', '%' . $keyword . '%')

              ->orWhere('product.quantity', 'like', '%' . $keyword . '%')

              ->orWhere('product.price', 'like', '%' . $keyword . '%');

    })

    ->groupBy('product.id')

    ->get();


查看完整回答
反對(duì) 回復(fù) 2023-09-08
  • 2 回答
  • 0 關(guān)注
  • 179 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)