yii2中查询数据的方法

  介绍

这篇文章主要介绍yii2中查询数据的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

<强>数据查询

用户::发现()→(),,,,,此方法返回所有数据;   用户:findOne ($ id);,,,此方法返回,主键,id=1,,的一条数据(举个例子),,   用户::发现()→((& # 39;名字# 39;,=祝辞,& # 39;小伙儿& # 39;])→一个(),,,,此方法返回,[& # 39;名字# 39;,=祝辞,& # 39;小伙儿& # 39;],的一条数据;   用户::发现()→((& # 39;名字# 39;,=祝辞,& # 39;小伙儿& # 39;])→(),,,,此方法返回,[& # 39;名字# 39;,=祝辞,& # 39;小伙儿& # 39;],的所有数据;   用户::发现()→orderBy (& # 39; id  desc # 39;)→(),,,,此方法是排序查询;   用户::findBySql (& # 39; SELECT  *,得到用户# 39;)→(),,,此方法是用,sql ,语句查询,user 表里面的所有数据;   用户::findBySql (& # 39; SELECT  *,得到用户# 39;)→();,,此方法是用,sql ,语句查询,user 表里面的一条数据;   用户::发现()→引入((& # 39;性与# 39;,=祝辞,& # 39;男& # 39;,,& # 39;年龄# 39;,=祝辞,& # 39;24 & # 39;])→计数(& # 39;id # 39;);,,,统计符合条件的总条数;   用户::发现()→一个(),,,,,此方法返回一条数据;   用户::发现()→(),,,,,此方法返回所有数据;   用户::发现()→count();,,,,此方法返回记录的数量;   用户::发现()→平均();,,,,此方法返回指定列的平均值;   用户::发现()→min(),,,,,此方法返回指定列的最小值,;   用户::发现()→max(),,,,,此方法返回指定列的最大值,;   用户::发现()→标量(),,,,,此方法返回值的第一行第一列的查询结果;   用户::发现()→列();,,,,此方法返回查询结果中的第一列的值;   用户::发现()→存在();,,,,此方法返回一个值指示是否包含查询结果的数据行;   用户::发现()→批(10);,,每次取,10,条数据,   用户::发现()→每个(10);,,每次取,10,条数据,,迭代查询

<强>多表查询:

/*,多表联查,*/模型美元=new 客户();   模型→美元fiind()→加入(“LEFT 加入”,“学生”,“student.cid=customer.id”)   ,,,,,,,,,,,,,(' student.id '=祝辞\ Yii:美元应用→→用户id)   ,,,,,,,,,,,→引入(is_ok=1)   ,,,,,,,,,,,,一个()

<强>关联查询

使用AR方法也可以查询数据表的关联数据(如,选出表一的数据可以拉出表B的关联数据)。有了AR,返回的关联数据连接就像连接关联主表的基于“增大化现实”技术对象的属性一样。

建立关联关系后,通过客户→美元订单可以获取一个订单对象的数组,该数组代表当前客户对象的订单集。

定义关联关系使用一个可以返回[[db \ ActiveQuery yii \]]对象的getter方法,[[db \ ActiveQuery yii \]]对象有关联上下文的相关信息,因此可以只查询关联数据。

class  Customer  extends  \ yii \ db \ ActiveRecord   {   ,,,public  function  getOrders ()   ,,,{   ,,,,,,,//,客户和订单通过,Order.customer_id →, id 关联建立一对多关系   ,,,,,,,return  $ this→hasMany(顺序::类名(),(& # 39;customer_id # 39;,=祝辞,& # 39;id # 39;]);   ,,,}   }   ,   class  Order  extends  \ yii \ db \ ActiveRecord   {   ,,,//,订单和客户通过,Customer.id →, customer_id 关联建立一对一关系   ,,,public  function  getCustomer ()   ,,,{   ,,,,,,,return  $ this→具(客户::类名(),(& # 39;id # 39;,=祝辞,& # 39;customer_id # 39;]);   ,,,}   }

以上使用了[[yii \ db \ ActiveRecord:: hasMany()]]和[[yii \ db \ ActiveRecord::具()]]方法。以上两例分别是关联数据多对一关系和一对一关系的建模范例。如,一个客户有很多订的单,一个订单只归属一个客户。两个方法都有两个参数并返回[[db \ ActiveQuery yii \]]对象。

建立关联关系后,获取关联数据和获取组件属性一样简单,执行以下相应的getter方法即可:

//,取得客户的订单   时间=美元customer 顾客::findOne (1);   orders 美元;=,客户→美元订单,,//,orders 美元;是,Order 对象数组

以上代码实际执行了以下两条SQL语句:

SELECT  *,得到customer  WHERE  id=1;   SELECT  *,得到order  WHERE  customer_id=1;

有时候需要在关联查询中传递参数,如不需要返回客户全部订单,只需要返回购买金额超过设定值的大订单,通过以下getter方法声明一个关联数据bigOrders:

yii2中查询数据的方法