У меня есть 3 таблицы, с которыми я соединяюсь, таблицы «PurchaseOrderProductsStatus, Product и PutAway».Symfony2 Только пользовательский запрос Возврат 1 Запись, должна возвращаться Несколько
PurchaseOrderProductsStatus Таблица
id | product_id |
----------------------
10 | 1 |
Таблица продукта
id | Name |
---------------------------
1 | Acme Product 123
Приемка Таблица
id | product_id |
----------------------
100 | 1
101 | 1
Я могу выводить данные на экран, вопрос я бегу в том, что он возвращает только 1 строку из моей таблицы PutAway. Он должен возвращать 2 строки, такие как ...
Acme Product 123
100 - Acme Product 123
101 - Acme Product 123
Вот мой customQuery. Что я делаю не так?
$query = $this->getEntityManager()
->createQuery('
SELECT pops, pr, pa
FROM WIC\PurchaseOrderBundle\Entity\PurchaseOrderProductsStatus pops
LEFT JOIN pops.product pr
LEFT JOIN pr.putAway pa
WHERE pops.inventoryLocation = :id
AND pops.account = :account_id
')
->setParameter('id', $id)
->setParameter('account_id', $account_id);
Немного информации о моей настройке. В моем объекте продукта у меня есть ассоциация oneToMany для таблицы PutAway.
/**
* @ORM\OneToMany(targetEntity="WIC\InventoryBundle\Entity\PutAway", mappedBy="product", fetch="EAGER")
*/
protected $putAway;
public function __construct()
{
$this->putAway = new ArrayCollection();
}
Вот мой шаблон веточка:
{% for action in productActions %}
<tr>
<td>{{ action.product.id }}</td>
<td>{{ action.product.sku }}</td>
<td>{{ action.product.name }}</td>
<td>{{ action.qty }}</td>
<td>0</td>
</tr>
<tr>
<td colspan="5">
<div class="row-fluid">
<div class="span2">
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>Purchase Order</th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
</tr>
</tbody>
</table>
</div>
<div class="span10">
<table class="table table-bordered" id="put_away_{{ action.product.id }}">
<thead>
<tr>
<th>Put Away Location</th>
<th>Quantity</th>
<th>Date</th>
<th>Entered By</th>
</tr>
</thead>
<tbody>
{% for putAway in action.product.putAway %}
<tr class="info">
<td>{{ putAway.inventoryLocation.name }}</td>
<td>{{ putAway.qty }}</td>
<td>{{ putAway.created|date("m/d/Y") }}</td>
<td>{{ putAway.createdBy.firstName }} {{ putAway.createdBy.lastName }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</td>
</tr>
{% endfor %}
Уточнить вопрос с помощью свойства 'PutAway # product'? Какой '@ JoinColumn' вы там определили? Кроме того, проверьте панель инструментов dev, чтобы увидеть, какой запрос выполняется, и попробуйте запустить его непосредственно из консоли SQL. –
Простите мое невежество. Я не знаю, что это значит: «Можете ли вы обновить вопрос с помощью свойства продукта PutAway #». Я новичок в Symfony. – LargeTuna
Все в порядке, я буду продолжать писать как «asnwer» из-за лучшей возможности форматирования;) –