Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 即时加载数据透视表_Php_Laravel - Fatal编程技术网

Php 即时加载数据透视表

Php 即时加载数据透视表,php,laravel,Php,Laravel,我有以下表格: users | name - ... carts | user_id - ... cart_product | cart_id - product_id - coupon_id 我的关系模型: Cart model public function products() { return $this->belongsToMany(Product::class) ->using(CartProduct::class)

我有以下表格:

users | name - ... 
carts | user_id -  ... 
cart_product | cart_id - product_id - coupon_id
我的关系模型:

Cart model
public function products()
{
    return $this->belongsToMany(Product::class)
                ->using(CartProduct::class)
                ->withPivot('quantity','coupon_id')
                ->withTimestamps();
}

User model:
public function cart()
{
    return $this->hasOne(Cart::class);
}

CartProduct 
class CartProduct extends Pivot
{
    public function coupon()
    {
        return $this->belongsTo(Coupon::class,'coupon_id');
    }
}   
当我只需要在优惠券上显示循环时,我需要加载
CartProduct

auth()->user()->cart->products()->whereNotNull('coupon_id')->get();
您可以使用:


$values将是登录用户的产品,该产品具有优惠券

但仍有N+1!看到这里:当我这样做:{{$product->pivot->优惠券->代码}
$values=auth()->user()->cart->products()->wherePivot('coupon_id','!=',null)->get();