Admin.php 2.0 KB
<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
 * 重写laravel-admin Admin类
+-----------------------------------------------------------------------------------------------------------------------
 *
 * PHP version 7
 *
 * @category  App\Admin\Rewrite
 * @package   App\Admin\Rewrite
 * @author    Richer <yangzi1028@163.com>
 * @date      2020年11月12日13:49:31
 * @copyright 2020-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
namespace App\Admin\Rewrite;

use App\Models\Enterprise\Enterprise;
use Encore\Admin\Admin as EncoreAdmin;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Support\Arr;

/**
 * Class Admin
 *
 * @category  App\Admin\Rewrite
 * @package   App\Admin\Rewrite
 * @author    Richer <yangzi1028@163.com>
 * @date      2020年11月12日13:49:31
 * @copyright 2020-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
class Admin extends EncoreAdmin
{
    /**
     * @return hasOne
     */
    public function enterprise(): hasOne
    {
        return $this->hasOne(Enterprise::class);
    }

    /**
     * Left sider-bar menu.
     *
     * @return array
     */
    public function menu()
    {
        $tree = $this->menu = parent::menu();

        foreach ($tree as $key => &$value) {
            // 菜单需要去掉 visible 不 为 1 的数据
            if ($value['visible'] == 0) {
                unset($tree[$key]);
            }
            if (array_key_exists('children', $value)) {
                // 获取第一个数组
                foreach ($value['children'] as $k => &$v) {
                    // 菜单需要去掉 visible 不 为 1 的数据
                    if ($v['visible'] != 1) {
                        unset($value['children'][$k]);
                    }
                }
            }
        }

        return $tree;
    }
}