Доброе время суток,
Я пытаюсь создать ресурс, который состоит из 2 полей, одно из которых должно быть заполнено на основе значения другого.
Для этого я использую NovaDependencyContainer.
Целевое поле Выбрать со следующей структурой:
Select::make('Course', 'courses')->options($this->loadAvailableCourses())
В этом поле создается массив со всеми доступными курсами:
$courses = \App\Models\TrainingCenter\Course::all();
$links = [];
foreach ($courses as $course) {
$course = $course->toArray();
$links[$course['id']] = $course['title'][app()->getLocale()];
$this->availableCourses[$course['id']] = $course['link'];
}
return $links;
После загрузки курсов варианты выбора возвращаются $ ссылки переменная, в то же время локальная собственность availableCourses населена с отношением 'course-id' => 'course-link'
,
После того, как пользователь выбирает курс, запускается следующий фрагмент кода:
NovaDependencyContainer::make([
Code::make('Test', function(){
return json_encode($this->courses);
})->language('json'),
])->dependsOnNotEmpty('courses')
Тем не менее $this->courses
переменная пуста (я предполагал, что это должно быть заполнено только в то время, когда я выбрал курс).
Я делаю что-то не так, или нет способа добиться функциональности, которую я хочу иметь?
Чтобы сделать это просто, вот что я пытаюсь достичь:
Постскриптум Этот ресурс и Курс Ресурс НЕ относится ни к чему, поэтому я не могу использовать это отношение.
Задача ещё не решена.
Других решений пока нет …