Yii API接口工作开发

概述:Yii是提供一种restful风格的接口开发,可以使用这个,也可以不进行使用,我想的是不进行使用。
如果是yii2 RESTful api提供的,直接进行配置就好,但是我不太想使用,原因有二,一是他是应该没办法自己定义请求接口url,二是他没办法对字段什么进行处理,好像直接就返回整个model了。
如果自己定义的话,有以下几个步骤
yii2迁移数据库
配置控制器
配置Url规则
其他进阶操作
整体看起来还是比较简单的。

参考:
yii2 RESTful api的详细使用_基础

1.前言很多同学在刚刚学习yii2框架的时候,对于如何使用activeRecode来查询数据总是感觉到比较迷茫,希望看完此文能有所帮助。
2. 声明一个AR类,在使用yii2框架创建一个model的时候,其实有两个选择,第一种是直接use基础model,然后继承,此处不做介绍。另一种方式就是use yii\db\ActiveRecord 基类。代码如下

namespace backend\models;
use yii\db\ActiveRecord;
class GoodsModel extends ActiveRecord
{
	public static function tableName()
	{//在这里必需实现一个tableName方法,并在tableName方法中返回操作的数据表名,例如goods表
	return 'goods';
}

3.如何查询记录
3.1 简单查询 AR 提供了两种方法来构建 DB 查询并向 AR 实例里填充数据:yii\db\ActiveRecord::find()yii\db\ActiveRecord::findBySql()findBySql()此处不做讲解,在AR中,要查询数据,可以直接使用find()方法,同时必需以one()或者all()结束,来表示是查询一条数据,还是多条数据,代码如下:

	public function getList()
{
return $this->find()
->all();//查询多条记录
}public function getRow()
{
return $this->find()
->one();//查询一条记录
}

3.2 根据条件查询然而在实际应用中,我们往往不可能只是进行这样简单的查询,比如经常需要根据条件对数据进行过滤,在AR里面也提供where()方法来写入条件,代码如下:

public function getList()
{
return $this->find()
->where([‘key1’=> value1,’key2’=>value2])//where传入的参数是数组格式
->all();
}

在上面的代码中,where使用简单的关联数组就能表示为where key1=value1 and key2=value2,如何还要有更复杂的表达式,则建议使用andWhere()来做条件追加,代码如下:

public function getList()
{
return $this->find()
->where(['>','age',10]) ->andWhere(['<>','id',10])//表示的是 where age>10 and id<>10
->all();
}

3.3 查询指定字段实际工作中,为了降低数据库压力,我们查询数据的时候,往往还会进行字段的指定,只取出自己需要的字段,AR提供了select()方法来实现,代码如下:

public function getList()
{
return $this->find()
->select([‘filed1’,’filed2’])//查询的字段,以索引数组的形式传入
->where([‘key1’=> value1,’key2’=>value2])
->all();
}

3.4 其它补充在查询过程中,我们往往还需要指定查询范围,指定排序方式,AR也都提供了相应方法,详见下面代码:

public function getList()
{
return $this->find()
->select([‘filed1’,’filed2’])
->where([‘key1’=> value1,’key2’=>value2])
->offset(0)//开始取的记录序号
->limit(10)//取出记录数量
->orderBy(‘goods_id DESC)//排序条件
->all();
}

3.5 查询数组格式数组 Yii2默认AR查询出来的是一个AR对象,如果要直接获取数组格式数据,则需要使用asArray()方法,代码如下:

public function getList()
{
return $this->find()
->select([‘filed1’,’filed2’])
->where([‘key1’=> value1,’key2’=>value2])
->offset(0)//开始取的记录序号
->limit(10)//取出记录数量
->orderBy(‘goods_id DESC)//排序条件->asArray()//取出数组格式数据
->all();
}

3.6 查询补充Yii2的AR查询,还提供两个快捷方式:findOne()和findAll(),代码如下:

public function findGoodById(){
return $this->findOne(1);//查询id为1的数据
}public function findGoodById(){
return $this->findAll([1,2,3]);//查询id为1、2、3的一组数据
}

到此,基本的查询操作就已经能做了,以后有时间再来分享一下简单的写操作。

使用yii2的activeRecode类简单查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值