laravel where 鏈式查詢問題
這兩天遇到一個奇怪的事情:
數據庫字段deal_group_id類型為string,值為 54338292_bak
在下面的例子中
$dealGroupId = 54338292;
$record = ReceiptRecordDao::where('uid', $uid)->where('deal_group_id',$dealGroupId)->where('status', 1)->first();
if ($record) {
SyslogDao::info('receipt_prepare1_' . $receiptCode, $record->deal_group_id);
SyslogDao::info('receipt_prepare2_' . $receiptCode, $data['dealgroup_id']);
throw new \Exception('你已經兌換過此類團購券了,鴨毛都被薅光啦~');
}
這里就一直能catch到exception,百思不得其解。
解決過程:
- 嘗試把數據庫中的值改為 5433829288,就查詢不到了,也不報錯了。
- 嘗試更改查詢語句,把int型強制轉化為string,問題解決了:
uid)->where('deal_group_id',“{$dealGroupId}”)->where('status', 1)->first();
不知道laravel框架搞了什么騷操作,在值為int型時,where鏈式查詢會出現這樣的問題。
第一次遇到,mark一下。