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

Mar*_* Yo 4 collections boolean laravel eloquent

我的数据库中有 33 个结果,其中这个布尔字段 (resolvido) 显示为零,如果我运行 SQL 查询,它会检索结果,但是在模型中,集合总是为空。

如果我更改为Model::where('resolvido',1)->get(),我确实会得到相应的结果,但是Model::where('resolvido',0)->get()Model::where('resolvido',false)->get()甚至使用查询生成器和原始 sql,该集合永远不会在resolvido = 0.

我也尝试过 Tinker,但它总是空的。

移民:

        $table->boolean('resolvido')->nullable();   
Run Code Online (Sandbox Code Playgroud)

在 DB 上显示为 TINYINT

关于它可能是什么的任何提示?

提前致谢

Jul*_*tol 9

当然,MySQL 没有布尔数据类型,而是使用TINYINT(0 或 1)。

Laravel 的查询生成器允许在 where 子句中使用布尔值。您可能想尝试这些:

Model::where('resolved', true)->get();
Model::where('resolved', false)->get();
Run Code Online (Sandbox Code Playgroud)

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

Model::where('resolved', null)->get();
Run Code Online (Sandbox Code Playgroud)

如果您不希望出现这种行为,请$table->boolean('resolved')->default(false)改用