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

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

withy PHP开发工程师
难度中级
时长 2小时39分
学习人数
综合评分9.67
176人评价 查看评价
9.9 内容实用
9.7 简洁易懂
9.4 逻辑清晰
  • //清除关联查询结果缓存 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?>
    查看全部
    0 采集 收起 来源:视图之数据块

    2018-03-22

  • 在一个视图显示另一个视图:<?=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
提交
取消
课程须知
学习本门课程之前,建议先了解一下知识,会更有助于理解和掌握本门课程 1、掌握PHP基本的语言语法 2、对MVC开发方式有一定的了解
老师告诉你能学到什么?
1、php的新特征 2、一款前沿的框架的使用方式 3、新颖独到的程序设计

微信扫码,参与3人拼团

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

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