介绍
这篇文章主要介绍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: