$matchThese = array('product_id' => 8789, 'MONTH(date_created)' => '04');
$result = ExpiryPrepayment::firstOrNew($matchThese);
$result->payment_status = 1;
$result->save();
***====>'MONTH(date_created)' => '04'***
帮助我获得条件只有月或年在列date_created
为什么要在firstnew中发送一个数组?这基本上是一个字符串,你要用它在eloquent中创建一个数组。插入数组将无法工作。实际上,product_id应该是唯一的,所以你只需要在你的where中使用这个值。
所以应该是这样的…
firstOrNew(['product_id' => $product_id]);
$product_id是唯一id的变量。然后,如果你有大量的产品要添加,只需循环遍历产品id数组,它会在你保存时创建一个新行,或者在第一次找到产品时更新产品。