我有一个与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()
的输出,因此我无法调试。
答案 0 :(得分:1)
您应该使用Laravel / nova docs中提到的-> 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';
}
});
}