yii向网站模板输出数据库信息,和联表查询以及无限分类

<?php
namespace frontend\libs;
use Yii;
use yii\base\Action;
use yii\base\ActionFilter;
use backend\models\Webinfo;
use backend\models\CateCategory;
use backend\models\CasesCate;
class LayoutsFilter extends ActionFilter{
	// public $a_name;
	// public $a_id;
    //action之前运行
    public function beforeAction($action)
    {


  //       $model = CateCategory::find()->where(['father'=>1,'status'=>1])->orderBy("orders DESC")->all();
  //       $model1 = CateCategory::find()->where(['father'=>2,'status'=>1])->orderBy("orders DESC")->all();
  // 		$model2 = CateCategory::find()->where(['father'=>3,'status'=>1])->orderBy("orders DESC")->all();
  //       $return=[$model,$model1,$model2];
  
  
		  // $model = CateCategory::find()->where(['cate_category.status'=>1])
		  // ->rightJoin('cases_cate','`cate_category`.`father` = `cases_cate`.`id`')
		  // ->orderBy("cate_category.orders DESC")->all();
		  
		  
		  // $model = CateCategory::find()
		  //     ->select('cate_category.*,cases_cate.name aname')
		  //     ->leftJoin('cases_cate','`cate_category`.`father` = `cases_cate`.`id`')
		  //     ->all();
		  
		  
		  $model = CateCategory::find()->select(['cate_category.*','cases_cate.name as a_name','cases_cate.id as a_id'])
		  ->where(['cate_category.status'=>1])
		  ->orderBy("cate_category.orders DESC")
		  ->innerjoin('cases_cate', 'cases_cate.id=cate_category.father')
		  ->asArray()
		  ->all();
		  $model=$this->easea($model,1);

		  $return=$model;

        //向layout输出网站信息
        $webinfo = Webinfo::find()->one();


        $view = Yii::$app->view;
        $view->params['webinfo'] = $webinfo;
        $view->params['cate']=$return;
        return true;
        //如果返回值为false,则action不会运行,如果返回值为true,则action运行
    }
    //action之后运行
    public function afterAction($action, $result)
    {
        //可以对action输出的$result进行过滤,return的内容直接显示
        return $result;
    }
	public function easea($cates,$pid)
	{
		static $tree=array();
		foreach($cates as $cate) {
			if ($cate['father'] == $cate['a_id']) {
				// $pid++;
				$tree[$cate['a_name']][] = $cate;
				//第二层将顶级分类放进数组,然后再次调用方法,获取当前id下的分类
				// $tree = array_merge($tree, $this->easea($cates, $pid));
				// $this->easea($cates, $cate['a_id']);
			}
		}
		return $tree;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

原克技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值