2
我有方法在我的倉庫類,但它沒有繼承外鍵的回報:Symfony2。庫法不返回額外的字段(外鍵)對於許多一對多
public function findAll()
{
$qb = $this->createQueryBuilder('d');
$result = $qb
->select('d', 'corporation', 'restaurant', 'deviceType', 'deviceAccess')
->leftJoin('d.corporation', 'corporation')
->leftJoin('d.restaurant', 'restaurant')
->leftJoin('d.deviceType', 'deviceType')
->leftJoin('d.accesses', 'deviceAccess')
->getQuery()
->getArrayResult();
return $result;
}
deviceAccess
這裏是許多一對多的關係並且它也包含外鍵,但上面的方法不會返回這個外鍵。
我YAML配置:
AppBundle\Entity\Device:
type: entity
table: device
repositoryClass: AppBundle\Repository\DeviceRepository
manyToOne:
corporation:
targetEntity: Corporation
joinColumn:
onDelete: CASCADE
restaurant:
targetEntity: Restaurant
joinColumn:
onDelete: CASCADE
deviceType:
targetEntity: DeviceType
joinColumn:
onDelete: CASCADE
manyToMany:
accesses:
targetEntity: DeviceAccess
id:
id:
type: integer
id: true
generator:
strategy: AUTO
fields:
description:
type: text
nullable: true
和deviceAccess:
AppBundle\Entity\DeviceAccess:
type: entity
table: null
repositoryClass: AppBundle\Repository\DeviceAccessRepository
id:
id:
type: integer
id: true
generator:
strategy: AUTO
manyToOne:
deviceAccessType:
targetEntity: DeviceAccessType
joinColumn:
onDelete: CASCADE
fields:
address:
type: string
length: 255
login:
type: string
length: 255
nullable: true
password:
type: string
length: 255
nullable: true
方法不返回deviceAccessType
場。 JSON結果 例子:
[
{
"id":34,
"description":"description1",
"corporation": {
"id":4,
"name":"corporation1",
"code":"74259",
"isDeleted":false
},
"restaurant": {
"id":5,
"name":"restaurant1",
"address":"",
"code":"1234",
"isDeleted":false,
"isBlacklist":false
},
"deviceType": {
"id":1,
"name":"printer",
"description":"printer"
},
"accesses":[
{
"id":22,
"address":"127.0.0.1",
"login":"admin",
"password":"password"
},
{
"id":23,
"address":"192.168.0.0",
"login":"user",
"password":"password"
}
]
}
]
如何解決這個問題,並迫使庫方法返回所有FOREIGH鑰匙?
非常感謝您的幫助!
只需要添加另外加入和更新的select語句: - > leftJoin(「deviceAccess.deviceAccessType」,'deviceAccessType)你也可以用預先加載鬼混,但加入是最直接的方式。 – Cerad
@Cerad非常感謝,這工作!請發表您的評論作爲答案,我會接受它! –
Arf ....真遺憾。 – chalasr