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

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

Laravel 使用 eloquent 獲取相關(guān)表列的總和

Laravel 使用 eloquent 獲取相關(guān)表列的總和

PHP
慕姐4208626 2023-09-22 16:48:50
我在用雄辯的方式計算購物車的價格時遇到一些麻煩,這是我的表格:cart_products: - cart_id - product_id - quantity products: - price一個購物車可以有多個 cart_products,每個 cart_products 都有一個關(guān)聯(lián)的產(chǎn)品我正在從購物車模型發(fā)出請求,我試圖獲取購物車的總價格(cart_products.quantity * products.price)。這是我的查詢:Cart::select('cart.*', \DB::raw('IFNULL(SUM(products.price*cart_products.quantity), 0) AS cart_price'))         ->leftJoin('cart_products', 'cart.id', '=', 'cart_products.cart_id')         ->join('products', 'cart_products.product_id', '=', 'products.id');當(dāng)我這樣做時,我確實得到了預(yù)期的結(jié)果,但所有不包含產(chǎn)品的購物車都被排除在外,我希望它們被包含在內(nèi)。我怎樣才能將它們包括在內(nèi)?還是有更好的方法來做到這一點(我看到了withCount方法,但無法使其正常工作)?
查看完整描述

2 回答

?
GCT1015

TA貢獻1827條經(jīng)驗 獲得超4個贊

另一種方法是在您的購物車模型中設(shè)置虛擬關(guān)系并計算您的購物車價格,例如


class Cart extends Model

{

    public function price()

    {

        return $this->hasOne(CartProducts::class, 'cart_id')

            ->join('products as p', 'product_id', '=', 'p.id')

            ->groupBy('cart_id')

            ->selectRaw('cart_id,IFNULL(SUM(products.price*cart_products.quantity), 0) as cart_price');

    }

}

要獲取購物車的價格數(shù)據(jù),您可以查詢?yōu)?/p>


Cart::with('price')->get()->sortByDesc('price.cart_price');


查看完整回答
反對 回復(fù) 2023-09-22
?
長風(fēng)秋雁

TA貢獻1757條經(jīng)驗 獲得超7個贊

我最終設(shè)法使用原始 SQL 以另一種方式做到這一點:

        Cart::select('cart.*', \DB::raw('(SELECT IFNULL(SUM(products.price*cart_products.quantity), 0) from cart_products join products on products.id = cart_products.product_id where cart_products.cart_id = cart.id) AS cart_price'));

感謝大家的幫助!


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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