Добрый день, Уважаемые коллеги помогите решить вопрос, понимаю что он не сложный,

но пятница и я туплю )))
Есть модель Category в ней id категории и parent_id дочерняя категория,
есть модель Item где cat_id равно id категории
в модели Item есть связка

public $belongsTo = [
        'cat' => [Category::class],
    ];
и в файле columns.yaml
    cat:
        label: Категория
        relation: cat
        select: title

Все работает,
только нужно в columns.yaml отобразить через косую Категория / Дочерняя категория
Как это сделать ?

8 ответов

10 просмотров

Создать в модели акцессор, который будет выводить "хлебные крошки категории", и в columns.yaml указать его вместо релейшена

В модели: public function getPathAttribute() : string { $parts = $this->getParentsAndSelf()->lists('title'); return join(' / ', $parts); } В columns.yaml: path: label: Категория

Дмитрий Иванченко
В модели: public function getPathAttribute() : str...

Это сработает, если используется трейт NestedTree. Если нет, то принцип тот же, только там уже нужно подставить значения вручную.

Дмитрий Иванченко
В модели: public function getPathAttribute() : str...

return $this->getParentsAndSelf()->pluck('title')->implode(' / ')

Vladimir 
return $this->getParentsAndSelf()->pluck('title')-...

То же самое, только через коллекцию, в одну строчку)

Дмитрий Иванченко
То же самое, только через коллекцию, в одну строчк...

именно, и без лишних телодвижений. lists является в своей реализации абстракцией над pluck(…)->all(). Следственно в начале ты получаешь из базы данные, которые попадают в коллекцию, которая сразу распакуется в массив (->all()). Следственно смысл коллекции - лишнее действие. Поэтому если все-таки коллекция появляется, логичнее ей воспользоваться. А метод ->implode как раз вернет строку из коллекции.

Похожие вопросы

Обсуждают сегодня

Так а кто может спарсить всех участников чата? Идишники
Magic
18
да пофиг на капчу зашел в чат и молчишь при этом ты нонейм? пошел вон
Magic
17
Privet! Mozhet jesti ideji - nemogu sdelatj upload backup s filestore cerez WEB. Fail okolo 450mb, eto mozhet bitj prichinoi? Nemogu ponjatj..kak zagruzitj backup... Poluchaju...
Matiss 🤘 Black Oak IT 🌳 Batumi 🌴 Latvija
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
13
Нужно магазин с тильды на опен кат перенести Есть кто умеет? В лс
Magic
6
Всем привет! Если пользователь обращался к боту через инлайн и не открывал его, бот сможет писать этому пользователю в личку? Или все таки нужно мотивировать пользователя на н...
Typewriter🖨
2
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
ох, как мне это нравится - "уточнить стоимость и получить консультацию"... есть знатоки лицензий, они не должны ли исходники открыть?
Artem (☞゚ヮ゚)☞ Bortnikov
5
Я хочу запустить свой проект в тг. Что-то между пирамидой и майнилкой. Еще подобного ничего не было. Уникальная идея. Нужен именно не бот, а приложение. С ввод, выводом тон...
Павел А.
6
Кто создает тут ботов для телеграмм групп ?
Antskup
8
Карта сайта