出错代码如下:
$mdOrder = ProductOrder::where([
'order_sn' => $input['order_sn'],
'user_id' => $mdUser->id,
])->first();
如果换成这样,又是可以的:
$mdOrder = ProductOrder::where([
'order_sn' => $input['order_sn']
])->first();
好在之前还有另一个 ClinicOrder 表,也是类似的用法,是可以正常工作的,于是经过反复对比,终于发现了原因。
因为这个 order_sn
的值是个 17 位的数字字符串,而 ProductOrder.order_sn
的类型是 unsigned bigInteger
,所以导致在逻辑查询的时候出错了,后面改成 varchar(255)
就可以了。