| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- <?php
- namespace Longyi\DynamicMenu\Repositories;
- use Webkul\Core\Eloquent\Repository;
- use Longyi\DynamicMenu\Models\MenuItem;
- class MenuItemRepository extends Repository
- {
- public function model()
- {
- return MenuItem::class;
- }
- public function getMenuTree()
- {
- $items = $this->all();
- return $this->buildTree($items);
- }
- private function buildTree($items, $parentId = null)
- {
- $tree = [];
- foreach ($items as $item) {
- if ($item->parent_id == $parentId) {
- $children = $this->buildTree($items, $item->id);
- if ($children) {
- $item->children = $children;
- }
- $tree[] = $item;
- }
- }
- return $tree;
- }
- public function getMenuItemsForRole($roleId)
- {
- return $this->model->whereHas('roles', function($query) use ($roleId) {
- $query->where('role_id', $roleId);
- })->where('status', 1)->get();
- }
- }
|