where('role', '<=', $role)->orderBy('ordinal'); if ($role !== User::ROLE_GUEST) { $sql->where('role', '!=', User::ROLE_GUEST); } if ($role !== User::ROLE_ADMIN) { $sql->where('role', '!=', User::ROLE_ADMIN); } $data = $sql->get(); $ret = []; foreach ($data as $d) { if (stripos($d['href'], 'http') === false) { $d['href'] = $serverurl.$d['href']; $ret[] = $d; } else { $ret[] = $d; } } return $ret; } /** * @return \Illuminate\Database\Eloquent\Collection|static[] */ public static function getAll() { return self::query()->orderBy('role')->orderBy('ordinal')->get(); } /** * @param $id * @return \Illuminate\Database\Eloquent\Model|null|static */ public static function getById($id) { return self::query()->where('id', $id)->first(); } /** * @param $id * @return mixed */ public static function deleteMenu($id) { return self::query()->where('id', $id)->delete(); } /** * @param $menu * @return int */ public static function addMenu($menu) { return self::query()->insertGetId( [ 'href' => $menu['href'], 'title' => $menu['title'], 'tooltip' => $menu['tooltip'], 'role' => $menu['role'], 'ordinal' => $menu['ordinal'], 'menueval' => $menu['menueval'], 'newwindow' => $menu['newwindow'], ] ); } /** * @param $menu * @return int */ public static function updateMenu($menu) { return self::query() ->where('id', $menu['id']) ->update( [ 'href' => $menu['href'], 'title' => $menu['title'], 'tooltip' => $menu['tooltip'], 'role' => $menu['role'], 'ordinal' => $menu['ordinal'], 'menueval' => $menu['menueval'], 'newwindow' => $menu['newwindow'], ] ); } }