<?php
 namespace Module\Nav\Util; use Illuminate\Support\Facades\Cache; use ModStart\Core\Dao\ModelUtil; use Module\Nav\Type\NavPosition; class NavUtil { const CACHE_KEY_PREFIX = 'nav:'; public static function add($position, $name, $link) { $sort = intval(ModelUtil::max('nav', 'sort')) + 1; ModelUtil::insert('nav', [ 'position' => $position, 'name' => $name, 'link' => $link, 'sort' => $sort, ]); } public static function listByPosition($position = 'header') { return ModelUtil::model('nav')->where(['position' => $position])->orderBy('sort', 'asc')->get()->toArray(); } public static function listByPositionWithCache($position = 'header', $minutes = 600) { return Cache::remember(self::CACHE_KEY_PREFIX . $position, $minutes, function () use ($position) { return self::listByPosition($position); }); } public static function clearCache() { foreach (NavPosition::getList() as $k => $_) { Cache::forget(self::CACHE_KEY_PREFIX . $k); } } }