繁体   English   中英

多对多关系 OrderBy - Laravel 查询生成器

[英]many-to-many relationship OrderBy - Laravel query builder

在此处输入图像描述

我正在尝试按选项表中的 thp 价格订购产品,价格可以是多币种,因为我添加了 dolor_price ,计算如下代码。 但结果是以下错误
SQLSTATE [42S22]:未找到列:1054 'order 子句'中的未知列'options.dolor_price'

    $products=Product::with(["options"=> function($option){
        $option->where('name' ,'unique name' );

        $option->selectSub(function ($q) {
            $rateEruToDolor =2;
            $rateAedToDolor =3;
            $q->selectRaw(' IF(currency=0,price * ?, IF(currency=1,price * ?, price))',
            [$rateEruToDolor,$rateAedToDolor]);
        }, 'dolor_price');
    }]);
    $products->orderBy('options.dolor_price');
    dd($products->get()->toArray());

尝试这个:

$rateEruToDolor =2;
$rateAedToDolor =3;
$products = Product::join('product_options', 'products.id', '=', 'product_options.product_id')
      ->join('options', 'product_options.option_id', '=', 'options.id')
      ->selectRaw('price, currency, IF(currency=0, price * ?, IF(currency=1, price * ?, price)) 
                   as dolor_price', [$rateEruToDolor, $rateAedToDolor]);
$products->orderBy('dolor_price');
dd($products->get()->toArray());

列出您的产品/选项表中的所有字段以及selectRaw('xxx, xxx, price, currency, IF...)方法中已经列出的pricecurrency 希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM