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');
 | |
|     }
 | |
| } |