laravel - 在 Laravel nova 中自定义 Partition Metrics 的值
问题描述
我有一张users
与operations
.
\App\user:
public function operation()
{
return $this->belongsTo('App\Operation');
}
所以我可以这样做:
$operation = user->operation
现在我想在用户资源页面中添加一个分区指标,告诉我按操作分组的用户数量
现在,它显示一个 id,它不过滤我的用户(需要过滤查询company_id
)
public function calculate(NovaRequest $request)
{
return $this->count($request, User::class, 'operation_id', 'name');
}
我尝试添加name
列名,但首先它不起作用,其次,我需要操作的名称,而不是用户名,所以它应该类似于operation.name
但它也不起作用。
如何打印操作名称而不是 operation_id
PD:基本上,整个过程更痛苦,因为我看不到指标的输出dump()
或dd()
指标,所以我无法调试。
解决方案
您应该使用 Laravel/nova 文档中提到的 ->label() 方法: https ://nova.laravel.com/docs/3.0/metrics/defining-metrics.html#customizing-partition-labels 。
那么,正确的代码应该是:
public function calculate(NovaRequest $request)
{
return $this->count($request, User::class, 'operation_id')
->label(function($operationId){
switch($operationId){
case 'opration_1_id': return 'operation_1_name';
break;
case 'opration_2_id': return 'operation_2_name';
break;
default: return 'Other';
}
});
}
推荐阅读
- zsh - 如何在 centos 8 中安装 zsh shell
- python - 将嵌套列表转换为元组
- amazon-web-services - 如何判断哪个 ELB 向我发送了流量?
- typescript - 从 Cloud Function 内部使用 API
- reactjs - Adding 2nd browser to Socket.IO and the first stops responding
- php - WP Contact Form 7 无法发送附件
- javascript - 如何使自定义范围输入适用于触摸屏?
- flutter - Future Builder 在 api 中有数据,但返回 Null
- dynamics-crm - 如何在 ADFS 中配置用户以能够访问 CRM
- sql - 什么将是 SQL 选择语句来识别被列为关系 A 的每本书的作者的个人