我有一个名为ActiveModel
的{{1}}类,它将UserActivity
返回到相关的ActiveQuery
表。
我想返回一个User
,其中的查询列出这些用户,已过滤按ActiveDataProvider
查询的条件。
我的UserActivity
课程看起来有点像这样:
UserActivity
我在Yii2 REST API中返回class UserActivity extends ActiveRecord
{
...
public function getUser(){
return $this->hasOne(User::className(),["id"=>"id_user"]);
}
...
}
(因为它是自动分页),我可以像这样返回ActiveDataProvider
动作的查询:
GetLikingUsers
...但是这会返回...
public function run($type){
return new ActiveDataProvider([
'query' => UserActivity::find()->where(["type"=>$type]),
]);
}
...
类型的对象,我不希望通过API公开这些对象。我宁愿只发送匹配的用户,例如:
UserActivity
但当然这不起作用。我知道我可以在查询上使用...
public function run($type){
return new ActiveDataProvider([
'query' => UserActivity::find()->where(["type"=>$type])->getUser(),
]);
}
...
加急加载,我可以将其与with("user")
一起发送,但我的问题是我不希望API使用者知道UserActivity
是什么类型是,他们应该只关注UserActivity
类型。
我喜欢使用ActiveQuery,到目前为止,我的API已经很好地形成了,但我仍然坚持这个。