У меня есть несколько сущностей, которые связаны друг с другом в Symfony 4.
Таким образом, в принципе дом может иметь несколько спален и несколько кухонь,Каждая кухня может иметь несколько шкафов.Мой текущий дизайн - ввести идентификатор спальни, который затем будет искать все кухни, связанные с домом идентификатора этой спальни, а затем возвращать все шкафы, связанные с этими кухнями.
Это построитель запросов (который отлично работает):
public function findCabinetsByBedroomId(Bedroom $bedroom)
{
return $this->createQueryBuilder('cabinet')
->join('cabinet.kitchen', 'kitchen')
->join('kitchen.house', 'house')
->join('house.bedroom', 'bedroom')
->addSelect('cabinet')
->andWhere('bedroom = :bedroom')
->setParameter('bedroom', $bedroom)
->getQuery()
->getResult();
}
, которые возвращают список следующей формы:
[
{
"id": 1,
"time": {
"date": "2019-06-12 11:51:22.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"productCategory": "Big",
"kitchen": {
"__initializer__": null,
"__cloner__": null,
"__isInitialized__": true,
"house": {
"__initializer__": null,
"__cloner__": null,
"__isInitialized__": true,
"kitchen": {},
"bedroom": {},
"id": 555,
"name": "someName"
},
"id": 55,
"name": "kitchen1",
"country": "US"
}
},
{
"id": 8888,
"time": {
"date": "2019-06-12 09:51:22.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"productCategory": "small",
"kitchen": {
"__initializer__": null,
"__cloner__": null,
"__isInitialized__": true,
"house": {
"__initializer__": null,
"__cloner__": null,
"__isInitialized__": true,
"kitchen": {},
"bedroom": {},
"id": 555,
"name": "someName2"
},
"id": 2,
"name": "anotherName",
"country": "UK"
}
}
]
Я понимаю, что Docker автоматически добавляет магические геттеры для всех ассоциаций.Есть ли способ отключить это?Чтобы просто вернуть информацию о шкафах, как это:
[
{
"id": 1,
"time": {
"date": "2019-06-12 11:51:22.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"productCategory": "Big",
},
{
"id": 8888,
"time": {
"date": "2019-06-12 09:51:22.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"productCategory": "small",
}
]
Пользователь @alx попытался объяснить мне, как это сделать, в своем комментарии к моему предыдущему вопросу .Но я до сих пор не понимаю, если честно.
Редактировать: я не поделился кодом своих сущностей, потому что не думал, что это важно в этом случае, но если вам нужно узнать, как они выглядят, отметьте мой предыдущий вопрос любезно.