Laravel elequent不基于布尔列检索结果

ltskdhd1  于 2023-05-08  发布在  其他
关注(0)|答案(3)|浏览(89)

我的数据库中有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
有什么线索吗?
先谢谢你了

zvms9eto

zvms9eto1#

当然,有no boolean data type for MySQL,但使用TINYINT(0或1)。
Laravel的查询生成器允许在where子句中使用布尔值。你可能想试试这些:

Model::where('resolved', true)->get();
Model::where('resolved', false)->get();

由于您已经将数据库中的resolved列设置为nullable,您可能还想尝试:

Model::where('resolved', null)->get();

如果不希望出现这种情况,请使用$table->boolean('resolved')->default(false)

11dmarpk

11dmarpk2#

试试这个

Model::where('resolved', null)->get()

Model::where('resolved', '')->get()
vngu2lb8

vngu2lb83#

在迁移过程中,必须添加默认值才能使其正常工作。否则,它将始终由NULL填充。
比如:

$table->boolean('resolvido')->default(0);

知道10是真或假。您将能够引用这些值 只能使用TRUEFALSE。如果在插入数据时没有在'resolvido'字段中输入任何内容,则在这种情况下,它将始终注册为FALSE(0)

相关问题