Плагин Builder, как отобразить элементы, выбранные другим классом модели вместо всех элементов?
Я создаю свой собственный плагин с плагином octoberCMS Builder. Есть 2 разных модельных класса
- категория
- вещь
внутри класса модели "элемент" у меня есть отношение к категории класса модели, поэтому каждый элемент может быть связан с "категорией".
На моей веб-странице я хотел бы отобразить категорию класса модели и все элементы из класса модели "item", которые связаны с этой категорией.
однако теперь отображаются все элементы, а не те, которые связаны с категорией. Я думал использовать знак ==, но пока это не работает. Как я могу решить эту проблему? Помощь будет высоко ценится!
1 ответ
Может быть, вы можете использовать родительский корабль.
В вашем
Category
модель добавить отношения
class Category extends Model
{
// we consider item table has `category_id` field to maintain relationship
public $hasMany = [
'items' => ['Yournamespace\Item']
];
}
Теперь все, что вы можете, так это получить
Categories
$categories= Category::all();
// pass $categories to view
теперь перебрать
category
а такжеits items
<ul>
{% for category in categories%}
<li>
<h3> {{ category.name }} </h3>
<ul>
{% for item in category.items %}
<li>{{ item.name }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
Будет show list of categories
в качестве основного списка и each list have sub-list
как это предметы
если есть сомнения, пожалуйста, прокомментируйте.