Completed
Push — master ( ab345e...8b711d )
by CodexShaper
13:15
created

DatabaseMenuSeeder   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 113
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 90
c 1
b 0
f 0
dl 0
loc 113
rs 10
wmc 6

2 Methods

Rating   Name   Duplication   Size   Complexity  
B getItems() 0 67 1
A run() 0 35 5
1
<?php
2
3
use CodexShaper\DBM\Facades\Manager as DBM;
4
use Illuminate\Database\Seeder;
5
6
class DatabaseMenuSeeder extends Seeder
7
{
8
    /**
9
     * Run the database seeds.
10
     *
11
     * @return void
12
     */
13
    public function run()
14
    {
15
        $menu = DBM::Menu()->where('slug','admin')->first();
16
17
        if(! $menu) {
18
            $order = DBM::Menu()->max('order');
19
            $menu = DBM::Menu();
20
            $menu->name = "Admin";
21
            $menu->slug = Str::slug('Admin');
22
            $menu->url = '/admin';
23
            $menu->order = $order+1;
24
            $menu->save();
25
        }
26
27
        foreach($this->getItems() as $item) {
0 ignored issues
show
Bug introduced by
The expression $this->getItems() of type null is not traversable.
Loading history...
Bug introduced by
Are you sure the usage of $this->getItems() targeting DatabaseMenuSeeder::getItems() seems to always return null.

This check looks for function or method calls that always return null and whose return value is used.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
if ($a->getObject()) {

The method getObject() can return nothing but null, so it makes no sense to use the return value.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
28
            if(! DBM::MenuItem()->where('slug', Str::slug($item['slug']))->first()) {
29
                $itemOrder = DBM::MenuItem()->max('order');
30
                $menuItem = DBM::MenuItem();
31
                $menuItem->menu_id = $menu->id;
32
                $menuItem->title = $item['title'];
33
                $menuItem->slug = Str::slug($item['slug']);
34
                $menuItem->url = $item['url'];
35
                if($item['parent']) {
36
                    $parentItem = DBM::MenuItem()->where('slug', $item['parent'])->first();
37
                    $menuItem->parent_id = $parentItem->id;
38
                }
39
                $menuItem->order = $itemOrder+1;
40
                $menuItem->route = $item['route'];
41
                $menuItem->params = $item['params'];
42
                $menuItem->middleware = $item['middleware'];
43
                $menuItem->controller = $item['controller'];
44
                $menuItem->target = $item['target'];
45
                $menuItem->icon = $item['icon'];
46
                $menuItem->custom_class = $item['custom_class'];
47
                $menuItem->save();
48
            }
49
        }
50
    }
51
52
    public function getItems()
53
    {
54
        [
55
            'database' => [
56
                'title' => 'Database',
57
                'slug' => 'database',
58
                'url' => '/database',
59
                'parent' => null,
60
                'route' => null,
61
                'params' => null,
62
                'controller' => null,
63
                'middleware' => null,
64
                'target' => '_self',
65
                'icon' => '<i class="fas fa-database"></i>',
66
                'custom_class' => null,
67
            ],
68
            'table' => [
69
                'title' => 'Table',
70
                'slug' => 'table',
71
                'url' => '/database',
72
                'parent' => 'database',
73
                'route' => 'database',
74
                'params' => null,
75
                'controller' => null,
76
                'middleware' => null,
77
                'target' => '_self',
78
                'icon' => '<i class="fas fa-table"></i>',
79
                'custom_class' => null,
80
            ],
81
            'crud' => [
82
                'title' => 'Crud',
83
                'slug' => 'crud',
84
                'url' => '/database/crud',
85
                'parent' => 'database',
86
                'route' => 'crud',
87
                'params' => null,
88
                'controller' => null,
89
                'middleware' => null,
90
                'target' => '_self',
91
                'icon' => '<i class="fas fa-database"></i>',
92
                'custom_class' => null,
93
            ],
94
            'permission' => [
95
                'title' => 'Permission',
96
                'slug' => 'permission',
97
                'url' => '/permission',
98
                'parent' => 'database',
99
                'route' => 'permission',
100
                'params' => null,
101
                'controller' => null,
102
                'middleware' => null,
103
                'target' => '_self',
104
                'icon' => '<i class="fas fa-user-lock"></i>',
105
                'custom_class' => null,
106
            ],
107
            'backup' => [
108
                'title' => 'Backup',
109
                'slug' => 'backup',
110
                'url' => '/database',
111
                'parent' => 'database',
112
                'route' => 'backup',
113
                'params' => null,
114
                'controller' => null,
115
                'middleware' => null,
116
                'target' => '_self',
117
                'icon' => '<i class="fas fa-sync"></i>',
118
                'custom_class' => null,
119
            ],
120
        ];
121
    }
122
}
123