【发布时间】:2016-08-02 15:32:25
【问题描述】:
我在 Yii2 中遇到了奇怪的问题我有一个查询,它与代理表有一个联接,并且作业与任务的(一对多)关系工作正常,但问题是它以字符串形式返回所有内容。以下是查询:
$query = self::find()
->select("job.*, agent.first_name,agent.last_name")
->leftJoin('agent', 'job.agent_id = agent.id')
->with('tasks')
->asArray()
->all();
以及 JSON 编码的结果:
{
"success": true,
"data": [
{
"id": "10",
"customer_id": "1",
"job_type": "normal",
"created": "2016-06-22 10:19:25",
"first_name": "Shayan",
"last_name": "",
"tasks": [
{
"id": "10",
"job_id": "10",
"title": "bring food",
"instruction": null,
"created": "2016-06-22 10:19:25",
},
{
"id": "10",
"job_id": "10",
"title": "bring pizza",
"instruction": null,
"created": "2016-06-22 10:19:25",
},
]
}
如果您注意到 id、customer_id 和 job_id 等字段,这些字段都是整数,但它以字符串形式返回。但是,如果我从上面的查询中删除 ->asArray() 它返回有效的类型转换,但问题是它跳过了关系和 leftJoin 代理表字段,它只返回作业表字段,这是从上面的查询中删除 ->asArray() 后的响应。
{
"success": true,
"data": [
{
"id": 10,
"customer_id": 1,
"name": null,
"job_type": "normal",
"created": "2016-06-22 10:19:25",
},
如果您在上面的响应中注意到它没有完全跳过代理表 first_name、last_name 和关系数据任务,但 id 和 customer_id 是整数。
有人遇到同样的问题吗?您的帮助将不胜感激。 提前致谢。
【问题讨论】: