首页 > 解决方案 > 从数据库中过滤记录,使其仅显示具有真实值的记录

问题描述

这个概念很简单。我有一个索引页面,它显示表中的每条记录,但我想创建一个包含 2 个选项的下拉框(我的表中有一个字段分配了 1 或 0 值),1 用于过滤记录仅显示具有 1 的记录,另一个仅显示具有 2 的记录。有没有办法做到这一点?

我试过的是:

我的控制器:

   public function filter()
    {
        $energys = Energy::all();
        $energys->filter(function ($energys) {
            return $energys->isredundant == '1';
        });
    }

标签: phphtmllaravellaravel-8

解决方案


为什么不使用模型中可用的 where 方法?

$energy = Energy::where('isredundant', true)->get();

这应该很适合您想要做的事情。

如果您仍然遇到问题,请考虑将数据库中的“isredundant”字段转换为布尔值,方法是将以下内容添加到您的 Energy 模型中:

protected $casts = [
    'isredundant' => 'boolean',
];

推荐阅读