Laravel:DB与(boolean)false比较时返回true

时间:2019-07-05 08:24:19

标签: laravel

为什么当我将false传递给Model::where()然后尝试获取first()元素时,它总是返回我的第一个元素而不是null

示例:

我具有hash_id = 123aSd456fGh的Referrer模型

我尝试如下所示:

$requestReferrer = false;

$referrer = Referrer::where('hash_id', $requestReferrer)->first();
dd($referrer); // returns first Referrer model with hash_id = 123aSd456fGh

仅供参考

当我通过传递null来交换false时,它将返回null。

1 个答案:

答案 0 :(得分:1)

原因: SQL Server会自动将位值更改为true或false的varchar值。

以下内容在其中起作用:

(window as any).webkit.messageHandlers

$requestReferrer=false;
$referrer = Referrer::where('hash_id', "$requestReferrer")->first();