Добавить количество связанных данных для каждого элемента в виде списка joomla MVC

У меня есть пользовательский компонент Joomla MVC. Компонент имеет таблицу элементов и таблицу ставок для доставки каждого элемента. Элемент может иметь несколько ставок.

Мне нужно показать COUNT ставок в представлении LIST элементов в каждой строке foreach.

Каков ЛУЧШИЙ способ достижения этого? Я попытался добавить следующее в модель элементов, но я не понимаю, как определить $ id для каждой строки элемента.

public function getBidsByItemId() { $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('COUNT(*)'); $query->from($db->quoteName('#__table_bids')); $query->where($db->quoteName('item_id')." = ".$id); // Reset the query using our newly populated query object. $db->setQuery($query); $count = $db->loadResult(); } 

Здесь вы можете увидеть полный компонент / models / items.php, на который я добавил его: http://ideone.com/yPJHRk

Благодарен за помощь экспертов MVC.

Лучшим способом, вероятно, будет JOIN . Попробуйте добавить в строку 83 что-то вроде следующего (вам придется адаптировать его к структуре таблицы db):

 // Join over the fields by field 'item_id' $query->select('itemBids.bids AS bidsNum'); $query->join('LEFT', '#__entrusters_bids AS itemBids ON itemBids.item_id = a.item_id'); 

Затем вы сможете получить значение из объекта. Я не могу проверить, чтобы это было более специфично для вашей проблемы, поэтому скажите мне, работает ли это.

вы должны определенно сделать соединение, но из того, что я понимаю, что вы хотите, является ставка-счет? В этом случае вы должны сделать групповой запрос, похожий на то, что говорит ilias, но:

 $query->select('count(itemBids.bids) AS bidsNum'); $query->join('LEFT', '#__entrusters_bids AS itemBids ON itemBids.item_id = a.id'); $query->group('a.id'); 

также обратите внимание на изменение ссылки в on-statement в соединении,

приветствует Йонаса