==========================【如何编辑layout】 ==========================
在layout文件夹下新建文件wx.php,写入代码

在Controller中添加代码

如果不想用layout可以把值改为false
layout在不声明的情况下默认main.php
在布局(layout目录下main.php、wx.php以及等等自定义文件)文件中
$this代表类参考手册里面的yii\web下view这个变量,详情参考这里
$content是view模板(即view文件夹下xx.php)渲染出来的内容
==========================【如何设置语言】 ==========================
在config/web.php中,在$config中添加代码
'language'=>'zh-CN',

==========================【如何设置默认路由】 ==========================
在不添加参数r=xxx/xxx的情况下默认访问路由site/index,可在config/web.php里的$config中单独配置defaultRoute项
'defaultRoute' => 'site/index',

==========================【如何关闭gii】 ==========================
将config文件夹下main-local.php文件中gii代码注释掉

==========================【gii建立model】 ==========================
首先数据库里得有几张表,表名为英文

输入Table Name前几个字将会匹配当前表,选择好之后点击空白处Model Class会被自动填上
Namespace可以有 frontend/models backend/models common/models 等等,要对应文件夹,其他的不改,点击Preview按钮,再Generate生成文件

==========================【gii建立curd】==============================

注意路径大小写,其中View Path是用正斜杠
【 hasOne() 和 hasMany() 】

positionContent表的position_id对就position表的id。positionContent跟position是一对一的关系,反过来则是多对一
positionContent.php(model)
class PositionContent extends \yii\db\ActiveRecord { public function getPosition(){ return $this->hasOne(Position::className(), ['id'=>'position_id']); }

- 第一个参数:所关联的模型的类名称。
- 第二个参数:是一个数组,其中键为所关联的模型中的属性,值为当前模型中的属性。
然后在Controller调用,这样就能拿到position表中的数据了。
class TestController extends BackendBaseController { public function actionIndex() { $data = PositionContent::findOne(10); $position = $data->position; } }
其实hasOne是执行了两次查询,并不是真正的连表查询。
SELECT * FROM `position_content` WHERE `id`=10
SELECT * FROM `position` WHERE `id`='14'
==========================【DetailView中format格式化】 ==========================
detailview中不可以用这种形式,否则会报错
'value'=>function($model){
return xxxxx;
}

解决方法就是
自己写个function

detailview中

value的表示还可以:

以及内部自带的format格式

详细:
https://www.yiichina.com/topic/6746
https://www.yiichina.com/doc/api/2.0/yii-i18n-formatter
http://www.codingdict.com/article/7967
【如何控制DetailView中某一行的样式】
detailview中,templete属性可以控制某一行的样式
'templete' => '<tr><th style="width:120px">{label}</th><td>{value}</td></tr>'
options可以设置detailview的class
'options' => ['class' => 'table table-striped']
浙公网安备 33010602011771号