yii2.0表关联查询实例分析

yii2.0表关联查询实例分析

ID:30506638

大小:17.32 KB

页数:6页

时间:2018-12-30

yii2.0表关联查询实例分析_第1页
yii2.0表关联查询实例分析_第2页
yii2.0表关联查询实例分析_第3页
yii2.0表关联查询实例分析_第4页
yii2.0表关联查询实例分析_第5页
资源描述:

《yii2.0表关联查询实例分析》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解Yii2.0表关联查询实例分析  本文实例讲述了Yii2.0表关联查询的方法。分享给大家供大家参考,具体如下:  你可以使用ActiveRecord来进行关联查询(比如,从A表读取数据时把关联的B表数据也一起读出来),在ActiveRecord中,获取关联数据可以像访问主表ActiveRecord对象的属性(property)一样简单。  比如,通过合适的关系声明,你可以使用$customer->orders来获取一个Order对象数组,代表

2、该客户下的订单。  要声明一个关系(relation),定义一个getter方法,该方法返回一个yiidbActiveQuery对象,拥有关联上下文信息,这样将只查询符合条件的相关数据。比如:  classCustomerextendsyiidbActiveRecord  {   publicfunctiongetOrders()   {   //Customerhas_manyOrderviaOrder.customer_id->id   return$this->hasMany(Order::className(),['customer_id'=>'id']);  

3、 }对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解  }  classOrderextendsyiidbActiveRecord  {   //Orderhas_oneCustomerviaCustomer.id->customer_id   publicfunctiongetCustomer()   {   return$this->hasOne(Cust

4、omer::className(),['id'=>'customer_id']);   }  }  上述代码中的yiidbActiveRecord::hasMany()和yiidbActiveRecord::hasOne()是用来建模关系型数据库中的一对多以及一对一关联关系。比如,一个客户customer有多个订单orders,而一个订单拥有或归属于一个用户。两个方法均接收两个参数并返回一个yiidbActiveQuery对象:  $class:关联模型的类名称。  $link:两张表之间的列关联。这得是一个数组。数组元素的键是$class所对应表的列名称,而数组元素

5、的值是当前声明类的列名称。依据表外键关联来定义这些关系是一个好的编程实践。对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解  完成上述声明后,就可以通过定义相应的getter方法来像访问对象属性一样获取关联数据:  //gettheordersofacustomer  $customer=Customer::findOne(1);  $orders=$custome

6、r->orders;//$ordersisanarrayofOrderobjects  上述代码在幕后实际执行了如下两个SQL查询,分别对应于上述两行代码:  SELECT*FROMcustomerWHEREid=1;  SELECT*FROMorderWHEREcustomer_id=1;  提示:如果你再次访问$customer->orders,并不会重复执行上述第2行SQL查询。这条查询语句只在表达式第一次被访问时才被执行。后续的访问将直接返回内部缓冲数据。如果你想重新执行查询,只需要先调用一下unset来清除缓存:  unset($customer->orders);. 

7、 有时候,你可能想传递参数给关联查询来限定查询条件。比如只想读取超过指定数额的大额订单,而不是所有订单。为此,可以使用如下getter方法来声明一个bigOrders关系:  classCustomerextendsyiidbActiveRecord  {对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。