Php 筛选数据库中的记录,使其仅显示具有真实值的记录
这个概念很简单。我有一个索引页,显示表中的每条记录,但我想创建一个下拉框,该下拉框有两个选项(表中有一个字段分配了1或0值),一个用于筛选记录以仅显示具有1的记录,另一个用于仅显示具有2的记录。有没有办法做到这一点 我尝试的是: 我的控制器:Php 筛选数据库中的记录,使其仅显示具有真实值的记录,php,html,laravel,laravel-8,Php,Html,Laravel,Laravel 8,这个概念很简单。我有一个索引页,显示表中的每条记录,但我想创建一个下拉框,该下拉框有两个选项(表中有一个字段分配了1或0值),一个用于筛选记录以仅显示具有1的记录,另一个用于仅显示具有2的记录。有没有办法做到这一点 我尝试的是: 我的控制器: public function filter() { $energys = Energy::all(); $energys->filter(function ($energys) {
public function filter()
{
$energys = Energy::all();
$energys->filter(function ($energys) {
return $energys->isredundant == '1';
});
}
为什么不使用模型中可用的where方法
$energy = Energy::where('isredundant', true)->get();
这对于您想要做的事情应该很有效
如果你继续存在问题,考虑将你的数据库中的“冗余”字段作为一个布尔值,在你的能量模型中添加以下内容:
protected $casts = [
'isredundant' => 'boolean',
];
您在这里尝试过递归函数吗???
Energy::all()
将影响您的性能。问题是我的字段不是布尔值,而是一个极小值。那么我如何使用where子句呢?那么它是一个整数,只要用1替换“true”就可以了。在这种情况下,您也不需要模型中的casts部分。因此,仅在控制器中使用此部分,我是否也需要创建一个全新的视图,或者是否仍然可以使用索引视图?您可以使用您想要的任何视图。将其放入控制器中,控制器将为您提供一组可以在视图中循环的能量对象。只需返回视图('index',['energy'=>$energy]);在路线中,我需要创建两条路线吗?一对一选择,一对另一选择?