Octobercms / Laravel получает идентификатор на основе отношения

В Octobercms у меня есть список выставок (первичных). Они имеют много отношения к сезонам, а сезоны относятся к шоу. Затем у меня есть эпизоды, относящиеся к сезону (в сезоне много эпизодов)

На картинке ниже я хочу получить сезон, который принадлежит шоу, а не каждый созданный сезон, как показано ниже. Кто-нибудь со знаниями laravel или octobercms знает, как я могу это реализовать?

Принцип работы octobercms заключается в том, что он заполняет раскрывающийся список связями или вручную через модель. Я делаю это отношениями:

    public $hasMany = [
        'episodes' => ['Teranode\Anime\Models\AnimeEpisode', 'key' => 'season_id'],
    ]; 

Эти две ссылки могут помочь, но не то, что я пытаюсь получить: http://octobercms.com/docs/database/relations
http://octobercms.com/docs/backend/relations < / а>


person Terrabyte    schedule 10.06.2016    source источник
comment
Поделитесь своим кодом для заполнения раскрывающегося списка Season   -  person haakym    schedule 10.06.2016


Ответы (2)


Каков контекст вашего Create Episodes модального окна? Конечно, шоу должно быть определено, если оно еще не в модальном окне?

Насколько я понимаю, ваши отношения работают так:

Show hasMany Season

Season hasMany Episode

Я бы порекомендовал попробовать заполнить раскрывающийся список конкретными Show Season, тогда вы увидите только те Season, которые принадлежат Show.

Итак, в коде, который будет выглядеть так ...

Допустим, мы хотим получить все сезоны шоу с идентификатором 1:

$show = Show::find(1);

$seasons = $show->seasons; // seasons that belong to show where id = 1

Надеюсь, это поможет?

person haakym    schedule 10.06.2016
comment
Проблема заключается в получении идентификатора записи сезона или основного рекорда в целом. Поддержка OctoberCMS немного сбивает с толку. - person Terrabyte; 11.06.2016

Я использовал Request :: segement (), чтобы получить идентификатор шоу в модели Episode в раскрывающейся функции:

public function getSeasonOptions()
{
    return Season::where('anime_id', Request::segment(6))->lists('title', 'id');
}

Этот процесс может помочь с вложенными отношениями, однако количество сегмента придется изменить, если вы сделаете URL-адрес основной страницы глубже.

@haakym the $ show = Показать :: найти (1); действительно не помогло, так как я пытаюсь получить идентификатор автоматически, а не вручную. Я понимаю, что это должно быть полезно, но этот пример не помог

person Terrabyte    schedule 23.06.2016