首页 文章

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

提问于
浏览
0

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

1 回答

  • 2

    当你看一下 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);
    });
    

相关问题