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

问题描述 投票:1回答:1

我正在使用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。我怎样才能实现它?

laravel laravel-nova
1个回答
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);
});
© www.soinside.com 2019 - 2024. All rights reserved.