http://yii.local/web/index.php?r=gii
1.Model Generator
2.Controller Generator
3.CRUD Generator
public function actionTest5()
{
$test = new Test();
//指定场景
// $test->scenario = 'scenarios1';
// 场景2 title 会忽略掉
$test->scenario = 'scenarios2';
$testData = [
'data' => ['id' => 2, 'title' => 'hello2']
];
$test->load($testData, 'data');
echo $test->id; // 2
echo $test->title; // hello2
}
<?php
namespace app\models;
use Yii;
/**
* This is the model class for table "{{%test}}".
*
* @property integer $id
* @property string $title
*/
class Test extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return '{{%test}}';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['title'], 'string', 'max' => 255],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'title' => 'Title',
];
}
public function scenarios()
{
return [
'scenarios1' => ['id', 'title'],
'scenarios2' => ['id'],
];
}
}
4.Form Generator
public function actionTest()
{
$model = new Test();
return $this->renderPartial('/article/publish',['model' => $model]);
}
widget : 小部件,一个元素可以在多个页面复用
public function actionMenu()
{
return $this->renderPartial('menu');
}
<?php
namespace app\components;
use yii\base\Widget;
class TopMenu extends Widget
{
//需要把 widget 的两个方法覆盖 init(), run()
public function init()
{
parent::init();
echo '<ul>';
}
public function run()
{
return '</ul>';
}
public function addMenu($menuName)
{
return '<li>' . $menuName . '</li>';
}
}
<?php
use app\components\TopMenu;
?>
<div>
<?php
$menu = TopMenu::begin();
?>
<?php
echo $menu->addMenu('menu1');
?>
<li>menu</li>
<?php
echo $menu->addMenu('menu2');
?>
<?php
TopMenu::end();
?>
</div>