我正在使用Yii2开发REST API。 在我的大多数控制器操作中,在创建正确的查询之后,最后我通常会这样做:
return new ActiveDataProvider([
'query' => $query
]);
我在REST调用中获取实际数据。 但是最近在我的一个控制器中,当我使用上面的代码时,我得到了ActiveDataProvider对象本身(查询,密钥,数据库......)
我知道我可以使用
return $dataProvider->getModels();
但是造成这种情况的原因是什么?为什么它在其他控制器中工作?
修改
我发现了一些东西:当我将afterAction()添加到控制器时,会发生这种情况。即使我不改变$ result:
public function afterAction($action, $result) {
parent::afterAction($action, $result);
return $result;
}