为了账号安全,请及时绑定邮箱和手机立即绑定

Yii框架不得不说的故事—基础篇(1)

withy PHP开发工程师
难度中级
时长 2小时39分
学习人数
综合评分9.67
176人评价 查看评价
9.9 内容实用
9.7 简洁易懂
9.4 逻辑清晰
  • //控制器添加数据 $test->validate();//调用model层验证数据,if($test->hasErrors())//判断验证结果 //model验证数据 public function rules(){ return [ ['id','integer'], //验证正整数 ['title','string','length'=>[0,5]], //验证title为字符串,长度为0至5 [['user','password'],'required'], //两个数据,验证一样 ] }
    查看全部
  • use yii\helpers\Html; 声明html类,<?= Html::encode($view_hollo); ?>把javascript进行转义成字符串, use yii\helpers\HtmlPurifier; 声明html类,<?=HtmlPurifier::process($view_hollo); ?>过滤javascript代码,
    查看全部
  • $cookie = \YII::$app->response->cookies; 调用响应组件中的cookies,$cookie->add(new Cookie("name","user"));添加cookies,$cookie->remove("name");删除cookies, $cookies = \YII::$app->request->cookies; 调用请求组件中的cookies,$cookies->getValue("name", 20);获取cookies名为name的值,未获取默认为20
    查看全部
  • session在浏览器的resources的cookie中可以看到,通过sessionid与服务器的session文件名的关联
    查看全部
  • 防脚本攻击 use yii\helpers\Html; ---- <?=Html::encode($data); ?> use yii\helpers\Purifier; ---- <?=HtmlPurifier::puocess($data); ?>
    查看全部
  • 在视图中显示另一个视图,使用render方法('模板名'[,要传递过去的键值对数据])
    查看全部
  • 1.namespace php类设置命名空间
    查看全部
    1 采集 收起 来源:命名空间

    2016-09-05

  • //视图之数据安全 //在$hello_str的值后边加上一段js代码,在浏览器刷新页面时,js代码被当成真的js代码显示出来。 //这样会产生问题,假如$hello_str是从用户那边传递过来的,用户以请求的方式发送了一段内容(含有js代码),这样就真的放在视图里去显示了。 //那么如果在js代码中用户放进了一些恶意代码,就会造成跨站脚本攻击,从而危害到安全。Yii框架提供了一些专门的工具来防止这些问题的发生。 $hello_str = 'Hello God!<script>alert(3);</script>'; $data = array(); $data['view_hello_str'] = $hello_str; return $this->renderPartial('index',$data); <!-- 视图之数据安全 --> <!-- Yii提供了一个工具类Html(在命名空间中的类,需要通过php代码去告诉应用程序去使用yii\helpers\Html;下的这么一个类),类中有一个方法encode(可以对这个变量当中的js代码进行转义) --> <?php use yii\helpers\Html; use yii\helpers\HtmlPurifier; ?> <h1><?=Html::encode($view_hello_str);?></h1> <!-- js代码会被原样的显示出来 --> <!-- 除了通过转义的方式去避免跨站脚本攻击之外,还可以通过另外一个类HtmlPurifier去过滤js代码 --> <h1><?=HtmlPurifier::process($view_hello_str);?></h1> <!-- process方法可以把变量里的js代码给彻底过滤掉 -->
    查看全部
  • 相应处理:<br> $res = \YII::$app->response;<br> 更改状态码:$res->statusCode = "404";<br> 添加header: $res->headers->add("pragma", "no-cache");<br> 修改header: $res->headers->set("pragma", "max-age=5");<br> 删除header: $res->headers->remove("pragma");<br> <br> 跳转: $res->headers->add("location", "http://www.baidu.com");<br> 重定向:$this->redirect("http://www.baidu.com", "302");<br>//302表示状态码 <br> 文件下载:$res->headers->add("content-disposition", "attachment; filename="a.jpg");<br> $res->sendFile("./robots.txt");
    查看全部
  • 通过Model::find()->batch(10),可以每次循环取10条,功能类似于文件读取中的管道读取,一次只加载部分到内存,这样可以节省内存,避免浪费(一次载入所有到内存然后慢慢处理,是会占用较多内存的)
    查看全部
  • htmlspecialchars(过滤js)把预定义字符转换为实体如<,>,‘,“等 即Html::encode
    查看全部
  • require_once('A.php');<br> <?php<br> namespace a\b\c;<br> class Apple{<br> function get_info(){<br> echo 'A';<br> }<br> }<br> ?><br> require_once('B.php');<br> <?php<br> namespace a\b;<br> class Apple{<br> function get_info(){<br> echo 'B';<br> }<br> }<br> ?><br> require_once('C.php');<br> <?php<br> <br> class Apple{<br> function get_info(){<br> echo 'rB';<br> }<br> }<br> ?><br> <br> <br> <br> use a\b\c\Apple;<br> 使用的是A.php中的Aplle use a\b\Apple as TApple;<br>使用的是b.php中的Apple $a_app = new Apple();<br> var_dump($a_app);<br> $a_app = new TApple();<br> var_dump($a_app);<br> $a_app = new \Apple();<br>加\代表使用的是根目录中的Apple var_dump($a_app);
    查看全部
    0 采集 收起 来源:命名空间

    2018-03-22

  • 实例化顶层类 new /Item();
    查看全部
    0 采集 收起 来源:命名空间

    2016-05-02

  • 关联查询,在Model文件中添加查询方法 getXXXXX()<br> 一对多: return $this->hasMany(Model::className(), ['key' => 'primary key'])->asArray()<br> 多对一或一对一: return $this->hasOne(Model::className(), ['key' => 'primary key])->asArray();<br> <br> 由于model中存中_get(),可以直接调整$Model->XXXX;相当于执行了$Model->getXXXX()->all/one(), 方法会根据hasMany/hasOne自动补上all/one();
    查看全部
  • 先取出/查询,再删除:$res = Model::find()->where()->all(); $res[0]->delete(); 删除所有:Model::deleteAll(); 可以传入条件参数;例如 deleteAll('id>:id', [':id', '0'])
    查看全部

举报

0/150
提交
取消
课程须知
学习本门课程之前,建议先了解一下知识,会更有助于理解和掌握本门课程 1、掌握PHP基本的语言语法 2、对MVC开发方式有一定的了解
老师告诉你能学到什么?
1、php的新特征 2、一款前沿的框架的使用方式 3、新颖独到的程序设计

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!