49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
<?php
 | 
						|
namespace app\widget;
 | 
						|
 | 
						|
 | 
						|
use app\model\Category;
 | 
						|
use think\facade\{Db,View, Cache};
 | 
						|
 | 
						|
class Menu
 | 
						|
{
 | 
						|
    public function index($categoryId)
 | 
						|
    {
 | 
						|
        $menus = Cache::get('rules');
 | 
						|
        if(empty($menus)){
 | 
						|
            $menus = Category::getListForFrontMenu();
 | 
						|
        }
 | 
						|
        $currentFirstId = 0;
 | 
						|
        if (is_numeric($categoryId) && $categoryId > 0) {
 | 
						|
            $currentFirstId = Category::firstGradeById($categoryId);
 | 
						|
        }
 | 
						|
 | 
						|
        //产品菜单
 | 
						|
 | 
						|
        $product_children=Category::alias('c')
 | 
						|
            ->leftJoin('model m', 'c.model_id=m.id')
 | 
						|
            ->field('c.*, m.manager, m.template, m.name as modelName')
 | 
						|
            ->where('c.parent_id', 5)
 | 
						|
            ->order('c.sort','asc')
 | 
						|
            ->select()
 | 
						|
            ->toArray();
 | 
						|
 | 
						|
        $data = [
 | 
						|
            'categoryId' => $categoryId,
 | 
						|
            'menus' => $menus,
 | 
						|
            'product_children' => $product_children?$product_children:[],
 | 
						|
        ];
 | 
						|
 | 
						|
 | 
						|
        $this_menu=  \app\model\Category::alias('c')
 | 
						|
            ->leftJoin('model m', 'c.model_id=m.id')
 | 
						|
            ->field('c.*, m.manager, m.name as modelName')
 | 
						|
            ->when(3, function($query)  {
 | 
						|
                $query->whereIn('c.id', []);
 | 
						|
            })
 | 
						|
            ->order('sort','asc')
 | 
						|
            ->select()
 | 
						|
            ->toArray();
 | 
						|
        return View::assign($data)->fetch('public/menu');
 | 
						|
    }
 | 
						|
} |