如何在控制器laravel中使用AND子句使用SQL语句

q3qa4bjr  于 2022-12-01  发布在  其他
关注(0)|答案(1)|浏览(115)

这是我的代码

$user_id = Auth::id();
        if(Cart::where('product_id', $product->id and 'user_id', $user_id) === null)
        {
            $cart = new Cart;
            $cart->product_id = $product->id;
            $cart->quantity = $request->get('quantity');
            $cart->user()->associate(Auth::user());
            $cart->save();
        }
        else
        {
    
        }

我知道的这个密码绝对管用

$cart = new Cart;
$cart->product_id = $product->id;
$cart->quantity = $request->get('quantity');
$cart->user()->associate(Auth::user());
$cart->save();

问题出在if语句的某个地方,但我不确定是什么问题。我尝试检查数据库中的carts表,看看是否已经存在具有相同产品ID和用户ID的cart。如果不存在,它将在数据库中创建一个cart。下面是我的数据库表:

mftmpeh8

mftmpeh81#

您需要将语法分解为单独的子句。

Cart::where('product_id', $product->id)->where('user_id', $user_id)->first()

你可以使用->first()来获取第一条记录,如果你真的想把值赋给一个变量来使用,这很有用。或者如果你不需要获取记录,你可以使用->count(),并检查计数是否等于0。

相关问题