yii2無限分類例項 非資料庫遞迴

2021-07-22 20:46:08 字數 1886 閱讀 8633

1、設計資料表,很簡單就三個字段

create table `category` (

`id` int(11) unsigned not null auto_increment,

`cate_name` varchar(255) default null,

`pid` int(11) unsigned not null default '0',

primary key (`id`)

) engine=innodb default charset=utf8;

2、model層**如下:

<?php 

namespace common\models;

use yii;

use yii\helpers\arrayhelper;

/** * this is the model class for table "}".

* * @property string $id

* @property string $cate_name

* @property string $pid

*/class category extends \yii\db\activerecord

}';    }

/*** @inheritdoc

*/public function rules()

/*** @inheritdoc

*/public function attributelabels()

/*** 獲取所有的分類

*/public function getcategories()

/***遍歷出各個子類 獲得樹狀結構的陣列

*/public static function gettree($data,$pid = 0,$lev = 1)

}return $tree;

}/**

* 得到相應  id  對應的  分類名  陣列

*/public function getoptions()

return $list;}}

3、控制器層宣告這樣乙個方法

public function actioncreate()

else 

}

4、檢視層**

<?php 

use yii\helpers\html;

use yii\widgets\activeform;

/* @var $this yii\web\view */

/* @var $model common\models\category */

/* @var $form yii\widgets\activeform */

?>

<?php  $form = activeform::begin(); ?>

= $form->field($model, 'cate_name')->textinput(['maxlength' => true]) ?>

= $form->field($model,'pid')->dropdownlist($list)?>

= html::submitbutton($model->isnewrecord ? 'create' : 'update', ['class' => $model->isnewrecord ? 'btn btn-success' : 'btn btn-primary']) ?>

<?php  activeform::end(); ?>

5、效果圖如下

yii2資料庫遷移

yii migrate create create test table 建立乙個資料庫遷移 yii migrate 提交所有的遷移 yii migrate m160623 034801 create test table 指定類名,提交乙個遷移 yii migrate down 還原最近一次遷移 ...

基礎YII2資料庫操作

注意 為了保持精度,從資料庫中取出的資料都被表示為字串,即使相應的資料庫列型別數值。當建立從乙個帶引數的sql乙個db命令,你應該總是使用繫結引數的方法來防止sql注入攻擊。引數繫結是通過預處理語句來實現。除了防止sql注入攻擊,也可通過一次準備sql語句和多次使用不同的引數執行它提高效能 yii ...

yii2 查詢資料庫語法

1 query0 imgroupuser find where gid 56680dfc60b215d62104a4d8 select user client id all ar2 query1 imgroupuser findall gid 56680dfc60b215d62104a4d8 ar3...