编程语言-PHP

thinkphp6 关联查询中使用动态获取器

2020-11-24  本文已影响0人  月圆星繁

https://www.kancloud.cn/manual/thinkphp6_0/1037588
以官网的方式在模型中定义获取器:

namespace app\admin\model;
use think\Model;
class GoodsStock extends Model
{
    public function getSalePriceAttr($value)
    {
        return $value*0.01;
    }
}

以上获取器在关联查询中不生效,使用下面的动态获取器可以实现:

            $info['goods_info'] = $barcode
                ->field('b.id bid,b.*,s.*')
                ->alias('b')
                ->leftJoin('goods_stock s', 's.sku = b.sku' )
                ->where("s.goods_id", "=", $params['id'])
                ->where("s.gas_id", '=', $params['gasId'])
                ->withAttr('sale_price', function($value) {  // 动态获取器
                    return $value*0.01;
                })
                ->withAttr('vip_price', function($value) {  // 动态获取器
                    return $value*0.01;
                })
                ->withAttr('purchase_price', function($value) {  // 动态获取器
                    return $value*0.01;
                })
                ->withAttr('market_price', function($value) {  // 动态获取器
                    return $value*0.01;
                })
                ->select();
上一篇 下一篇

猜你喜欢

热点阅读