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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
2
0
4 213
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Другие вопросы по теме