我正在使用Laravel Nova开发Web应用程序。 Laravel Nova是一项相当新的技术。现在,我现在要做的是重写Field回调以添加自己的业务逻辑,而不是执行数据库操作。请在下面查看我的情况。
这是我使用资源的字段方法
public function fields(Request $request)
{
return [
ID::make()->sortable(),
Text::make("Subject")->fillUsing(function(){
//here, I like to get the id of the created model. How?
}),
Text::make('Title')->sortable()
];
}
如您所见,我覆盖了“主题”字段的逻辑。我喜欢在回调中获取模型的ID。我该如何实现?
答案 0 :(得分:4)
看看Field.php
类,您将看到fillCallback
的用法:
protected function fillAttribute(NovaRequest $request, $requestAttribute, $model, $attribute)
{
if (isset($this->fillCallback)) {
return call_user_func(
$this->fillCallback, $request, $model, $attribute, $requestAttribute
);
}
$this->fillAttributeFromRequest(
$request, $requestAttribute, $model, $attribute
);
}
因此,在回调函数中,您可以访问如下变量:
Text::make('Subject')->fillUsing(function($request, $model, $attribute, $requestAttribute) {
dd($model->id);
});