thinkphp 模型关联的使用

购物车model 中关联product   使用 hasone

class StoreCart extends BaseModel
{

    public static function tablePk(): ?string
    {
        return 'cart_id';
    }

    public static function tableName(): string
    {
        return 'store_cart';
    }

    public function product()
    {
        // 三个参数 分别是  外部数据表  外键  内键
        return $this->hasOne(Product::class, 'product_id', 'product_id');
    }

    public function cartProduct()
    {
 // 三个参数 分别是  外部数据表  外键  内键
        return $this->hasOne(Product::class, 'product_id', 'product_id')->field('product_id,image,store_name,is_show,status,is_del,unit_name,price,mer_status,temp_id');
    }

    public function productAttr()
    {
 // 三个参数 分别是  外部数据表  外键  内键
        return $this->hasOne(ProductAttrValue::class, 'unique', 'product_attr_unique');
    }

}

获取数据 使用with

 public function getAll(int $uid)
    {
        $query = ($this->getModel())::where(['uid' => $uid, 'is_del' => 0, 'is_new' => 0, 'is_pay' => 0])->with(['product' => function ($query) {
            $query->field('product_id,image,store_name,is_show,status,is_del,unit_name,price,mer_status,is_used');
        }, 'productAttr' => function ($query) {
            $query->field('product_id,stock,price,unique,sku,image');
        }, 'merchant' => function ($query) {
            $query->field('mer_id,mer_name,mer_state,mer_avatar');
        }])->select();

        return $query;
    }

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

larance

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值