Laravel nova получает значение идентификатора созданной модели в обратном вызове fillUsing поля - PullRequest
0 голосов
/ 04 сентября 2018

Я занимаюсь разработкой веб-приложения с использованием Laravel Nova. 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()
        ];
    }

Как видите, я переопределяю логику поля "Тема". Мне нравится получать идентификатор модели внутри обратного вызова. Как мне этого добиться?

1 Ответ

0 голосов
/ 04 сентября 2018

Когда вы посмотрите на класс 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);
});
...