我正在使用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()
];
}
正如您所看到的那样,我正在覆盖Subject字段的逻辑。我喜欢在回调中获取模型的Id。我怎样才能实现它?
当你看一下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);
});