-
//控制器添加数据 $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类设置命名空间查看全部
-
//视图之数据安全 //在$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);查看全部
-
实例化顶层类 new /Item();查看全部
-
关联查询,在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
提交
取消