gpt4 book ai didi

api - Yii2 REST API 关系数据返回

转载 作者:行者123 更新时间:2023-12-05 00:41:14 25 4
gpt4 key购买 nike

我已经使用自定义操作设置了 Yii2 REST API,一切正常。但是,我想做的是从 API 返回一些数据,其中包括由外键设置的数据库关系。关系就在那里,它们实际上工作正常。这是其中一个 Controller 中的示例查询:

$result = \app\models\Person::find()->joinWith('fKCountry', true)
->where(..some condition..)->one();

仍然在 Controller 中,例如,我可以这样调用:

$result->fKCountry->name

并且它会在关系工作时显示适当的名称。到目前为止一切顺利,但是一旦我返回从 API 客户端接收到的结果 return $result;fkCountry 就消失了,我无法访问上面提到的名字。唯一剩下的是指向国家表的外键值。

我可以提供更多代码和信息,但我认为这足以描述问题。如何对返回中连接数据中的信息进行编码,以便 API 客户端也可以访问它?

最佳答案

这样设置

public function actionYourAction() {
return new ActiveDataProvider([
'query' => Person::find()->with('fKCountry'), // and the where() part, etc.
]);
}

确保在您的 Person 模型中,extraFields 函数包含 fKCountry。如果你还没有实现 extraFields 功能,添加它:

public function extraFields() {
return ['fKCountry'];
}

然后,当您调用 url 时,请确保添加 expand 参数以告知您要包含 fkCountry 数据的操作。所以像:

/yourcontroller/your-action?expand=fKCountry

关于api - Yii2 REST API 关系数据返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37941773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com