我正在使用yii2 rest api。我的行动中的问题是我必须在一个动作中显示模型数据。我正在展示汽车细节,还有汽车类型及其可用的公司。
问题是,一个车型中的车辆细节以及另外两个车型上的车型和汽车公司。
如何使用rest api获取模型。
请有人建议我如何获得此
答案 0 :(得分:2)
您可以使用extraFields方法。这是一个例子:
class Image extends yii\db\ActiveRecord
{
...
public function getOwner()
{
return $this->hasOne(Owner::className(), ['id' => 'owner_id']);
}
public function getTags()
{
return $this->hasMany(Tag::className(), ['id' => 'tag_id'])->viaTable('image_has_tag', ['image_id' => 'id']);
}
public function getUploader()
{
return (new \yii\db\Query())
->select('username')
->from('user')
->where([ 'id' => $this->user_id ])
->scalar();
}
public function extraFields()
{
return ['owner','tags','uploader'];
}
}
要获取图片列表及其各自的owner
,tags
和uploader
,您只需执行GET请求即可:
正如您所看到的,它完全是关于模型类中的关系设计。您还可以使用fields方法在每个相关模型类中取消设置或保留字段输出。有关详细信息,请参阅docs。
答案 1 :(得分:0)
我认为Yii REST API只返回应用程序数据交换格式(如JSON)中的vanilla CRUD操作。这适用于基本的REST服务。但是,如果要返回自定义数据,则必须手动编写REST响应。
如果没有Yii REST API,可以实现这一目标
yii\web\Response
:JSON,XML等