我的数据库中有33个结果,其中布尔字段(resolvido)显示为零,如果我运行SQL查询,它会检索结果,但在模型中,集合总是空的。
如果我更改为Model::where('resolvido',1)->get()
,我确实会得到相应的结果,但是Model::where('resolvido',0)->get()
或Model::where('resolvido',false)->get()
,甚至使用查询构建器和原始SQL,集合永远不会拾取resolvido = 0
中的33个结果。
我也试过修补匠,它总是空出来。
迁移:
$table->boolean('resolvido')->nullable();
在DB上显示为TINYINT
有什么线索吗?
先谢谢你了
3条答案
按热度按时间zvms9eto1#
当然,有no boolean data type for MySQL,但使用
TINYINT
(0或1)。Laravel的查询生成器允许在where子句中使用布尔值。你可能想试试这些:
由于您已经将数据库中的
resolved
列设置为nullable
,您可能还想尝试:如果不希望出现这种情况,请使用
$table->boolean('resolved')->default(false)
11dmarpk2#
试试这个
或
vngu2lb83#
在迁移过程中,必须添加默认值才能使其正常工作。否则,它将始终由NULL填充。
比如:
知道1或0是真或假。您将能够引用这些值 只能使用TRUE或FALSE。如果在插入数据时没有在'resolvido'字段中输入任何内容,则在这种情况下,它将始终注册为FALSE(0)。