-
//清除关联查询结果缓存 unset($customer->orders); //关联查询的时候涉及到性能问题。 $customers=Customer::find()->all();//执行的sql语句为:select * from Customer; $custome=Customer::find()->with('orders')->all(); //执行的sql语句为:select * from Customer;select * from Order where customer_id in(...); //加上with('order')这时候遍历的时候就不需要再执行sql语句 foreach($customers as $customer){ $orders=$customer->orders; }查看全部
-
关联查询: use yii\db\ActiveRecord; class Customer extends ActiveRecord{//帮助顾客获取订单 public function getOrders(){ $result=$this->hasMany(order::className(),['customer_id'=>'id'])->asArray()->all(); return $result; } } 关联查询: hasMany:一对多,hasOne:一对一 $customer->orders; $customer当没有orders属性时,$customer自动调用_get()方法,拼接调用getOrders()方法,并自动在后面加上all()方法或者one()方法,至于何时自动拼接all或者one,取决于关联查询是用的hasMany还是hasOne,如果是hasMany则拼接all,否则反之。 //关联查询 //根据顾客查询她/他的订单的信息 // $customer = Customer::find()->where(['name'=>'zhangsan'])->one(); // $order = $customer->hasMany('app\models\Order',['customer_id'=>'id'])->asArray()->all(); // $orders = $customer->getOrders(); // $orders = $customer->orders; // print_r($orders); //根据订单查询顾客的信息 $order = Order::find()->where(['id'=>1])->one(); $customer = $order->customer; //以属性的方式获取数据 print_r($customer); 注:若使用以属性的方式获取数据,则在模型里面要定义一个方法,该方法要以get+属性的命名方式。查看全部
-
//修改数据 $result=Model::find()->where(['id'=>1])->one(); $result->title='title1'; $result->save();查看全部
-
添加数据: 控制器文件中: //实例化类生成对象 $model=new Model(); //接收参数 $model->title='$变量'; //数据校验 $model->validate();//验证器 if($model->hasError()){ echo '错误信息'; die } $model-save(); //然后再model.php文件中加入验证 public function rules(){ return [['id','integer'],['title','string','length'=>[0,5]]]; }查看全部
-
替换数据块 view中:<?php $this->beginBlock['block1'];?><h1>...</h1><?php $this->endBlock();?> 公共文件中main.php<?=$this->block['block1'];?> 在上面的基础上还可以加上逻辑判断 <?php if(isset($this->block['block1']));?> <?=$this->blocks['block1'];?> <?php else;?> <h1>...</h1> <?php endif?>查看全部
-
在一个视图显示另一个视图:<?=php echo $this->render('about',array('key'=>'value'));?>//显示about视图并向其传递参数查看全部
-
<?=Html::encode(变量);?>//原样显示js代码 <?=HtmlPurifier::process();?>//过滤js代码查看全部
-
return $this->renderPartial('对应的模板',$data);---$data可以存放数组的数组 view视图中的读取为<?=对应的数组变量;?>查看全部
-
return $this->render() 输出父模板的内容,将渲染的内容,嵌入父模板。| return $this->renderPartial 则不输出父模板的内容。只对本次渲染的局部内容,进行输出。查看全部
-
\Yii::$app->response->cookies; add() remove(); \Yii::$app->resquest->cookies; getValues();查看全部
-
$session=\Yii::$app->$session;<br> <br> //开启session<br> $session->open();<br> //设置session<br> $session->set('key','value');<br> //获取session<br> $session->get('key');<br> //销毁session<br> unset($session['key']);查看全部
-
$res=\Yii::$app->response $res->statusCode='404'----还可以设置状态码 添加headers:$res->headers->add('pragma','no-cache'); 修改headers:$res->headers->set('pragma','max-age=5'); 移除headers:$res->headers->remove('pragma'); 跳转: 添加headers:$res->headers->add('location','http://www.baidu.com'); $this->redirect('http://www.baidu.com','302');查看全部
-
namespace ---命名空间 user ---导入某个类或资源 $request=Yii::$app->request ---request资源r=控制器/方法/参数 $request-post();----post资源 isGet isPost查看全部
-
mvc查看全部
-
关联查询性能问题查看全部
举报
0/150
提交
取消