这俩天学习了yii2 ,写点心得,嘻嘻

第一部分呢,就写下关于yii2 的mvc的一些东东吧

Yii 的mvc 结构

1. 控制器

控制器中的方法以 action 开头 如果遇上像 actionCreateItem 这样的方法,访问时候,url 得这么写 localhost/index.php?r=控制器名/create-item ,

用- 代替大小写

public function actionIndex()
{}

Controller 中的 $request

 1 //      获取 request 信息
 2 $request = \Yii::$app->request;
 3 //      获取所以get 的数据
 4 $get = $request->get();
 5 //      获取 put ,post , patch 的数据
 6 $params = $request->bodyParams;
 7 //      获取头部信息
 8 $header = \Yii::$app->request->headers;
 9 //      获取 userAgent
10 $userAgent = \Yii::$app->request->userAgent;
11 //      获取Content-type
12 $contype = \Yii::$app->request->contentType;
13 //      获取userhost
14 $userhost = \Yii::$app->request->userHost ;
15 //      获取userip
16 $userip = \Yii::$app->request->userIP;

控制器中的response

 1 public function actionResponse()
 2 {
 3 //      获取响应信息
 4 $header = \Yii::$app->response->headers;
 5 //      添加响应信息
 6 $header->add('pragma','no-cache');
 7 //      设置响应信息
 8 $header->set('pragma' ,'No-c');
 9 //      删除响应信息
10 $header->remove('pragma');
11 //      设置响应文本
12 \Yii::$app->response->content = "hello yii2;";
13 //      数据格式化 json
14 $response = \Yii::$app->response;
15 $response->format = \yii\web\Response::FORMAT_JSON;
16 $response->data = ['message'=>'hello zeopean' , 'status'=>1];
17 echo $response->data;
18 }

2. 模型

模型中的 rules 表示 对模型字段对验证规则 ,validatePassword 则是验证方法

模型场景 scenarios

在模型中的 定义

1 public function scenarios()
2 {
3 return [
4 'create'    => ['message' , 'created_at' ],
5 'update'    => ['message' , 'updated_at']
6 ];
7 }

在控制器中的使用:

 1 public function actionUpdate($id)
 2 {
 3 $model = $this->findModel($id);
 4 $model->setScenario('update');     //设置场景模式
 5 $model->updated_at = time();
 6 if ($model->load(Yii::$app->request->post()) && $model->save()) {
 7 return $this->redirect(['view', 'id' => $model->id]);
 8 } else {
 9 return $this->render('update', [
10 'model' => $model,
11 ]);
12 }
13 }

我们可以通过不同的场景,对模型字段进行验证  例如,我们在进行创建操作时,想要验证  created_at , message ,但是我们却没必要验证 updated_at,

故而我们的 create 场景就是这样的了,

public function scenarios()

 {return ['create'    => ['message' , 'created_at' ],   ]}

这个场景只针对 create 时有效 ,故而有以下代码

  public function actionUpdate($id){$model = $this->findModel($id);$model->setScenario('update');     //设置场景模式

    ... 

 }

3.视图

3.1 使用 ActiveForm 创建表单 ,使用 ActiveForm 挂件

1 <?php $form= ActiveForm::begin(); ?>
2 <?= $form->field($model , 'name')->label('请输入姓名') ?>
3 <?= $form->field($model , 'email')->label("请输入邮箱") ?>
4 <div class="form-group">
5 <?= Html::submitButton("Submit" , ['class' => 'btn btn-primary']) ?>
6 </div>
7 <?php $form= ActiveForm::end(); ?>

3.2 静态文件的使用

  1. 在basic/assets/AppAsset.php进行一下配置 ,此处为全局设置

/* 全局css 文件*/
public $css = [
'css/site.css',
];
/*全局js 文件*/
public $js = [
'js/file.lazyload.min.js',
];

  1. 在视图中初始化,让视图文件能找到 这个配置项

1 <?php
2     \app\assets\AppAsset::register($this);
3 ?>

  1. 在视图中 使用

    1. js 文件

<?php
$this->registerJs('
LazyLoad.js(["js/zepto.js"     //这是一个延迟加载js/css文件的插件
], function () {
$(function(){
alert("hello");
});
});
');
?>

  1. css 文件

<?php
$cssString = ".gray-bg{color:red;}";
$this->registerCss($cssString);
?>

转载于:https://www.cnblogs.com/zeopean/p/yii2.html

我 yii2 (一)相关推荐

  1. yii2服务器无法加载文件夹,用Yii2做的项目在部署到云服务器后访问无反应,也没有任何数据响应...

    输入地址后一直在等待响应 经过检查,代码在跑到\vendor\yiisoft\yii2\base\View.php public function renderFile($viewFile, $par ...

  2. yii2服务器无法加载文件,yii2查看服务器500错误的方法

    服务器500错误: 首先开启 web/index.php defined('YII_DEBUG') or define('YII_DEBUG', true); 将此改 true:看下报错的问题Exce ...

  3. php yii2支付宝开发,yii2 支付宝支付教程 [ 2.0 版本 ]

    yii2 支付宝支付教程 [ 2.0 版本 ] 支付宝支付流程个人理解大致就这三步 1.前台页面将支付信息数据通过立即支付按钮 ajax提交到订单处理层 2.在订单处理层引用支付宝的接口 将支付数据写 ...

  4. yii2框架原生的结合框架使用的图片上传

    首先我们要从model层开始写起,主要是为了创建验证规则,还有图片上传的路径以及图片的命名规则(UploadForm.php) 接下来我们要在控制器层写好业务逻辑,就是什么情况下直接在调用model层 ...

  5. Nginx+Apache Yii2.0 配置方案

    最近用Yii2.0框架做了个小项目,虽然项目本身业务逻辑不复杂,但是由于本身业务逻辑的特殊性,在上午9点到12点之间系统访问量会突然上升(浏览量和用户上传文件量).导致系统单纯的部署在Apache下, ...

  6. yii2 后台权限验证获取用户身份_Yii2搭建后台并实现rbac权限控制完整实例教程...

    1.安装yii2 未安装的请参考yii2史上最简单式安装教程,没有之一 已安装的请继续看下一步操作 2.配置数据库 2.1 配置数据库 修改common/config/main-local.php 实 ...

  7. Yii2.0 RESTful API 之版本控制

    Yii2.0 RESTful API 之版本控制 之前我写过两篇关于 Yii2.0 RESTful API 如何搭建,以及 认证 等处理,但是没有涉及到版本管理,今天就来谈谈版本管理如何实现. 索性就 ...

  8. php的yii2框架下开发环境xampp,vim,xdebug,DBGp的搭建

    2019独角兽企业重金招聘Python工程师标准>>> 引言 Yii1.1的搭建过程见这里.下面做少许改动,加入composer部分,使之用于Yii2. 选择Linux桌面环境Dee ...

  9. yii2多mysql配置文件_yii2使用多个数据库的案例

    关于yii2配置操作多个数据库进行操作,文档上面也给出了具体的配置,一个实战性的例子,也是很简单的,我们这里以权限控制为单个管理库dbname2,业务库dbname 为例来看看如何配置多个数据库. N ...

  10. php根据时间搜索,yii2实现根据时间搜索的方法

    本文实例讲述了yii2实现根据时间搜索的方法.分享给大家供大家参考,具体如下: // date to search $date = DateTime::createFromFormat('m/d/Y' ...

最新文章

  1. java+hadoop配置参数_将Hadoop参数传递给Java代码
  2. 谈谈varnish、squid、apache、nginx缓存的对比
  3. TS中补充的六个类型
  4. 广州那所大学有自考计算机专业,广州自考本科大学有哪些
  5. MySQL必知必会——了解SQL/SQL简介/使用MySQL
  6. 济源一中2021高考成绩查询入口,济源一中2019高考成绩喜报、一本二本上线人数情况...
  7. Qt工作笔记-QListWidget鼠标拖动,一个到另一个,并遍历
  8. java中的静态代码块、构造代码块、构造方法
  9. JavaScript 颜色梯度和渐变效果
  10. python scrapy框架爬虫当当图书网
  11. REPNZ SCANS
  12. 48. Be aware of template metaprogramming
  13. BT601和BT709的区别最简洁的描述
  14. Ubuntu 安装宋体
  15. Win10如何优化系统?电脑运行比较卡怎么优化?
  16. Redis从入门到入坟系列文章(一): keys 命令
  17. 两个生物特征识别会议的最新情况
  18. HDOJ 6078-Wavel Sequence
  19. unity获取Spine动画时间
  20. java调用espeak_espeak-example Java for windows文本转语音,用 引擎 Other systems 其他 244万源代码下载- www.pudn.com...

热门文章

  1. 7-7 mmh学长的大数模板 (20分)
  2. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-4.在线教育后台数据库设计...
  3. MySQL性能优化设置
  4. Git 打标签(分布式版本控制系统)
  5. 3.写一个简单的弹出菜单
  6. spring中使用i18n(国际化)
  7. Appium+python自动化(十一)- 元素定位秘籍助你打通任督二脉 - 下卷(超详解)...
  8. postgresql 数据库路径迁移
  9. [Sdoi2013] 直径
  10. NVIDIA TK1 刷机记录(1)ubuntu 14.04