gpt4 book ai didi

Laravel Nova 指标过滤

转载 作者:行者123 更新时间:2023-12-04 13:10:33 25 4
gpt4 key购买 nike

我有一个名为 Property 的模型,它有一个“事件”标志。我想要在我的资源顶部有一个指标来显示事件属性的数量。

我的计算方法与文档中的完全一样,但这显示了所有属性而不是事件属性:

public function calculate(Request $request)
{
return $this->count($request, Property::class);
}

如何添加过滤器?

我试过一个 where 子句:
public function calculate(Request $request)
{
return $this->count($request, Property::class)->where('active','=',1);
}

和查询范围:
public function calculate(Request $request)
{
return $this->count($request, Property::class)->active();
}

我以为我可以使用我在资源列表页面上设置的 Nova 过滤器,但这似乎也不起作用。我相信这真的很容易,但我还没有解决。谢谢你的帮助!

最佳答案

您可以在 $model 参数中使用每种类型的 Eloquent\Builder 实例。

代替:

public function calculate(Request $request)
{
return $this->count($request, Property::class);
}

在您的模型上设置范围
App\Property.php
...
public function scopeActive($query)
{
return $query->where('active', 1);
}
public function scopeInactive($query)
{
return $query->where('active', 0);
}

并在您的计算方法中使用此范围作为 $model 参数,因为范围的调用返回一个 Eloquent\Builder 实例
public function calculate(Request $request)
{
return $this->count($request, Property::active());
// return $this->count($request, Property::inactive());
}

编辑
当然,您可以使 Eloquent Builder 调用内联:
public function calculate(Request $request)
{
return $this->count($request, Property::where('active', 1));
}

关于Laravel Nova 指标过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52035962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com