-
Test::deleteAll('id>:id',array(':id'=>0));这里数组对应的数据库中的ID是从0开始,也就是数据库第一条记录就是:id=>0 这里的Test是模型名称,当然在控制器使用模型时候必须告诉控制字自己来来自哪里:use app\models\Test;use yii\web\Controller查看全部
-
//数据模型之单表删除 //删除数据,先取出要删除的数据 /*$results = Test::find()->where(['id'=>1])->all(); $results[0]->delete();//调用delete()方法就可以删除第一条数据*/ //删除数据有个更快捷的方式:调用控制器当中的deleteAll()方法把整个表里的数据删掉;同时这个方法里也可以带上查询条件指定删除哪部分的数据。 //Test::deleteAll('id>0'); Test::deleteAll('id>:id',array(':id'=>0));//deleteAll也支持占位符的功能查看全部
-
删除数据库中表值得流程图:查看全部
-
(1)查询结果转化成数组:数组比对象占用内存少->asArray() (2)批量查询 foreach (Test::find()->batch(1) as $test) { P(count($test)); }查看全部
-
1.ActiveRecord(活动记录类) (1)方法:findBySql()继承之父类的,结果返回一个对象(放在数组当中) 2.SQL入侵 (1)占位符:(:id),加载Sql语句后面 (2)在findBySql($sql,array())数组中赋值。由于array()会把用户传递过来的值作为一个整体去处理, (3)findBySql防止SQL注入 // $sql='select * from Test where id=:id '; // $result=Test::findBySql($sql,array(':id'=>2))->asArray()->all();//findBySql第二个参数设置占位符 $sql='select * from Test where id=:id '; $result=Test::find($sql)->where(['id'=>3])->asArray()->all();//findBySql第二个参数设置占位符 p($result);查看全部
-
流程图查看全部
-
$layout = common ; //布局文件 $this 视图组件 如果想替换公共文件中的某段(数据块),可以在视图文件中使用: <?php $this->beginBlock('block1'); ?> <h1>....</h1> <?php $this->endBlock();?> 公共文件中调用 <?=$this->blocks['block1'];?> 判断显示数据块有木有,然后在显示 <?php if(isset($this->blocks['block1'])):?> <?=$this->blocks['block1'];?> <?php else: ?> <h1>hello Common </h1> <?php endif; ?>查看全部
-
1.在一个视图(index.php)中显示另一个试图(about.php):在视图index.php文件中使用<?=php echo $this->render('about');?>显示about视图; 2.注意:这时候Controller调用的是renderpartical() 3.当需要给(about.php)页面传入参数时,用render的第二个参数:$this->render('about',array('key'=>'value')),这样就可以把第二个参数数组传递给about.php这个视图中 4.(about.php)页面如何使用(index.php)页面传递过来的数据? (1)通过数组下边(key)直接可以访问 (2)语句:<?=$key;?>查看全部
-
public $layout = 'common';//通过$layout属性去告诉render方法去显示common布局文件 //视图之布局文件 //把布局文件common.php和视图文件home.php、about.php用render()方法进行拼合,才 能达到之前视图的显示效果。 //rensder()方法在显示视图文件的时候会做2件事:第1件事是会把视图里的内容放到$content这个变量中;第2件事是render()方法会把布局文件给显示出来。 return $this->render('about');查看全部
-
1.控制器和视图之间传递数据: (1)定义一个变量$hello="Hello World!"; (2)声明一个数组$date=array(); (3)这里使用了关联数组,把这个字符串变量放到数组$date中 (4)$date['view_hello_str']=$hello; (5)return $this->renderPartial(“index”,$date); 2.在视图中如何使用数据(也就是控制器传递过来的数组) (1)只需在模板中调用$data的key值(也就是数组下标),即可获得对应的value值 (2)<?=$键名 ?> //?= 之间不能有空格查看全部
-
1.Controller和View关联 (1)控制器中: 调用一个renderpartial()方法,这个方法是基类Controller中的方法 这里使用$this这个关键字调用。 (2)renderpartial(“parm”),参数表示要显示那个视图文件,当然yii还规定了要显示视图,必须在前面加一个return语句: 完整语句:return $this->renderpartial(“parm”); (3)别的都叫方法,yii中就得叫动作。查看全部
-
视图之数据安全: 1.如何使用HTMl这个类 Use yii\helpers\Html Use yii\helpers\HtmlPurifier 2.在视图页面应用Html中encode()这个方法把JS代码进行转义。 <?=Html::encode($view_hell_str);?> 3.过滤Js文件的类:HtmlPurifier中的process()方法彻底过滤掉。 <?=HtmlPurifier::process($view_hell_str);?> 4.二者的区别: (1)Html这个类只是过滤掉了,代码依然显示。 (2)HtmlPurifier这个类是直接过滤掉JS代码不显示源码和内容。查看全部
-
localhost/basic/web/index.php?r=hello/index&id=3 那么通过浏览器向hello控制器里的index操作发送请求的时候,可以在请求的后面加上一些参数,比方说加上&id=3。那么当这个请求发送到index操作之后,怎样才能在index操作里把id参数取出来?可以通过请求组件这么一个东西来完成。要想获得请求组件,可以通过Yii框架里面的全局的类(Yii),那么在这个类里有一个静态变量($app),也就是之前所说的应用主体,那么这个应用主体在刚开始的时候会加载各种各样的应用组件。这里有一个request组件,也就是请求组件。获取到请求组件之后,把它放到$request变量之中。通过这个请求组件,就可以获取发送过来的请求当中的数据了。 $request = \Yii::$app->request;//Yii类是全局类,要想使用需在前面加上反斜杠\ 因为传递过来的参数是通过get的这种方式,可以通过request组件里面的get方式来获取请求当中的数据。 echo $request->get('id'); echo $request->get('id',20);//如果没有id传过来,get获取不到,或者说get获取到的是null值。那么让get做一个判断,如果id没有传过来,就返回另一个值。可以通过设置get的第二个参数做到这一点。 //获取post请求当中的数据,通过post('参数的名字',没有参数传过来时post返回的默认值)方式 $request->post('name',2333); //利用request这个请求组件,还可以判断发送过来的请求类型 if ($request->isGet/isPost) { echo "this is get method!"; } //通过这个请求参数,还可以去获取用户的一些信息(如ip) echo $request->userIp; $request->userIP;或$request->userIp;都能获取用户的ip地址。但yii2源码里,应该是userIP。查看全部
-
HelloController.php //视图之在视图中显示另外一个视图 return $this->renderPartial('home'); views/hello/home.php <!-- 视图之在视图中显示另外一个视图 --> <!-- <?php echo $this->render('about');?> --> <!-- 当需要传入参数时,用render的第二个参数:$this->render('about',array('key'=>'value')) --> <?php echo $this->render('about',array('v_hello_str'=>'hello world!'));?> views/hello/about.php <h1><?=$v_hello_str;?></h1>查看全部
-
HelloController.php public $layout = 'common';//通过$layout属性去告诉render方法去显示common布局文件 //视图之布局文件 //把布局文件common.php和视图文件home.php、about.php用render()方法进行拼合,才 能达到之前视图的显示效果。 //rensder()方法在显示视图文件的时候会做2件事:第1件事是会把视图里的内容放到$content这个变量中;第2件事是render()方法会把布局文件给显示出来。 return $this->render('about'); views/layouts/common.php <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <!-- 把视图文件中重复的这段html代码放在布局文件中,以精简视图文件 --> <!-- 因为视图的内容放在$content中,把$content打印出来就可以完成拼接 --> <h1>hello common</h1> <?=$content;?> </body> </html> views/hello/home.php、about.php hello home、hello about查看全部
举报
0/150
提交
取消