NovaDependencyContainer в сочетании с полем выбора - PullRequest
0 голосов
/ 02 ноября 2018

Доброе время суток, Я пытаюсь создать ресурс, который состоит из 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;

После загрузки курсов параметры выбора возвращаются переменной $ links , в то же время локальное свойство availableCourses заполняется отношением 'course-id' => 'course-link'.

После того, как пользователь выбирает курс, запускается следующий фрагмент кода:

NovaDependencyContainer::make([
    Code::make('Test', function(){
        return json_encode($this->courses);
    })->language('json'),
])->dependsOnNotEmpty('courses')

Однако переменная $this->courses пуста (я предполагал, что она должна быть заполнена только в тот момент, когда я выбрал курс).

Я что-то не так делаю, или нет способа добиться желаемой функциональности?

Чтобы упростить задачу, вот что я пытаюсь достичь:

  1. Предоставление пользователю возможности выбирать курс
  2. Если выбран курс, то создайте поле, в котором будет отображаться идентификатор выбранного курса
  3. Оттуда я хочу использовать этот идентификатор курса, чтобы получить ссылку на курс (он не упоминается в вопросе, поскольку, когда я смогу получить идентификатор курса, я смогу извлечь эту ссылку из ранее созданный availableCourses массив)

P.S. Этот ресурс и ресурс Course НЕ имеют никакого отношения, поэтому я не могу использовать отношение.

...