技术QQ交流群:294088839
一.引用视图中的布局文件
一般公共文件都写在layouts文件中
<?php $this->beginPage() ?> 在布局的开始处调用
<?php $this->endPage() ?> 在布局的结尾处调用
<?php $this->head() ?> 在html页面中<head>标签中调用
<?php $this->beginBody() ?> 在body标签的开始处调用
<?php $this->endBody() ?> 在body标签结尾处调用
<?= $content ?> 在body中间调用 内容部分
如果有的特殊页面不需要这个公共页面或者需要其他的公共页面
需要在相对应的控制器中设置一个变量来指定相对应的公共页面
//如果不需要就设置为false;
$this->layout=false; 或者 $this->layout='公共页面名称';
二.配置应用主题
一些公共的常理经常使用 可以用 Yii::app来调用
例如:
<html lang="<?= Yii::$app->language ?>">
<head>
<meta charset="<?= Yii::$app->charset ?>">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?= Html::csrfMetaTags() ?>
<title><?= Html::encode($this->title) ?></title>
<?php $this->head() ?>
</head>
这里的 language变量是通过配置文件config中进行声明的常理
修改默认控制器:在配置文件中加
[
'defaultRoute' => '默认路径',
]
三.模型
建立模型文件
首先要声明命名空间,打开相对应的基类文件
namespace frontend\models;
use yii;
use yii\db\ActiveRecord;
1.一个模型文件对应一个数据库的表
在视图展示页面的时候,如果有后台要展示的数据:控制器中要实例化相对应的模型,在通过render()方法来展示页面和传输模型数据
例如:
有一个test表 然后视图要展示test表里的内容 在渲染页面的时候,要把这个表传输过去
$t=new Test();
return $this->render('index',['model'=>$t]);
2.模型中定义验证规则用rules()方法 具体参数参照开发手册
例:
public function rules(){
return [
[['user', 'time'], 'required'],
[['user'], 'required'],
];
}
3.在模型中也可以定义场景 scenarios()方法
场景的意思:添加数据数据的时候 所有的信息都要有验证 但是编辑信息的时候有时候有的信息不用必填 就可以用这个场景过滤掉
把添加和编辑的验证规则写在一起
例:
//先用这个方法定义场景
public function scenarios(){
return [
'create'=>['user','time'],
'update'=>['user']
];
}
//在验证规则这里 后面跟上on关键字 来判断是否是编辑或者是添加
public function rules(){
return [
// 在"register" 场景下 username, email 和 password 必须有值
[['user', 'time'], 'required','on' => 'create'],
[['user'], 'required','on' => 'update'],
];
}
//最后在控制器中 使用scenario变量赋值
$t=new Test();
$t->scenario = 'update';
这样他就可以找到相对应的验证规则
4.Yii中的一些方法
使用Yii类里的方法要先打开
use Yii;
//判断是非是post提交
Yii::$app->request->isPost
//接收模型里相对应字段的值,把框架中自带的一些参数过滤掉 这种接收方式跟$_POST接收方式进行比较可以看出不一样的地方
Yii::$app->request->post('模型的名字')
find() 查找一条数据
findOne(1) 查找一条数据
具体的用法查看手册