Laravel Nova在字段的fillUsing回调中获取已创建模型的ID值

时间:2018-09-04 08:58:25

标签: laravel laravel-nova

我正在使用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。我该如何实现?

1 个答案:

答案 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);
});