在Nova的字段定义中,可以使用“resolveUsing”来处理要显示的值,并将选择字段的ID传递到模型中,而不是将整个模型数据传递到前端。例如:
Select::make('State')
->options([
'CA' => 'California',
'NY' => 'New York',
'TX' => 'Texas',
])
->resolveUsing(function ($value) {
return $value; // Return the selected option's ID
}),
然后,在模型的访问器中,可以根据ID返回相应的字符串:
public function getStateAttribute($value)
{
$options = [
'CA' => 'California',
'NY' => 'New York',
'TX' => 'Texas',
];
return $options[$value];
}