사용자 정의 joomla MVC 구성 요소가 있습니다. 구성 요소에는 항목 표 과 해당 항목을 제공 할 수있는 입찰가 표가 있습니다.Joomla MVC 목록보기에서 행의 관계형 데이터를 표시하는 방법은 무엇입니까?
내가 항목 모델이를 추가하여 '항목'에 대한 목록을보기에서 관련 '입찰'을 표시하는 방법을 알아 낸 :보기/아이템/뷰
public function getBidsById($id) {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select('*')
->from('#__entrusters_bids ')
->where('item_id = ' . $id);
$db->setQuery($query);
$db->query();
return $db->loadObjectList();
}
이. html.php :
$model = $this->getModel('Item', 'EntrustersModel');
$itemID = jRequest::getVar('id');
$bidsOnItem = $model->getBidsById($itemID);
$this->bidsOnItem = $bidsOnItem;
보기/항목/tmpl/default.php :
var_dump ($ this-> items_by_id);
모두 정상적으로 작동합니다. - foreach 문의 각 행에서
지금 내가 목록보기 (s가있는 항목)에 대한 입찰의 수를 표시해야합니다 :
여기에 실제 질문입니다.
가장 좋은 방법은 무엇입니까? 내가 항목 모델 및보기/아이템/view.html.php에 동일한을 추가하는 시도, 나는이 목록에 이런 식으로 뭔가를 시도 :
<ul>
<?php foreach ($this->items as $item) : ?>
<li>Item stuff about the item. This item has <?php echo count($item->bidsOnItem); ?> bids</li>
<?php endforeach; ?>
</ul>
하지만 그건 그냥 0 반환 -에 입찰하지 개수 목록의 각 항목 MVC 전문가의 도움에 감사드립니다.
http://us3.php.net/count을> bidsOnItem 객체입니다 (당신은 통해 Objectlist를 reurning하고) 나는 당신이 실제로 그것에게 무언가를주기를 결심했다고 믿습니다. 그러나 나는 그것이 정말로 당신이 원하는 것이면 쿼리에서 카운트를 반환하지 않는 이유에 대해 정말로 혼란 스럽습니다. 왜 그냥 getBidsCount 메소드를 작성하지 않는가? 또한 JDatabaseQuery에는 이전 쿼리에서 반환 한 행 수를 반환하는 getNumRows() 메서드가 있습니다. – Elin
나는 Elin과 동의 할 것이다. 행 카운트로 시도 했는가? 아니면 다른 이유로 입찰 객체가 필요합니까?- 또는 sizeof ($ item-> bidsOnItem)을 시도 했습니까? – elk
감사합니다 - 아니요, 항목 목록보기에서 그냥 카운트를 원해요. 그래서 당신이 말한 것을 취합니다. 카운트 선택 (*), 항목 GROUP BY 항목을 사용하여 쿼리를 다시 작성할 필요가 있습니까? 아마도 models/items.php에 필요한 전체 항목을 제안 할 수 있습니까? - 엘린, 웹 사이트를 통해 이메일을 보냈습니다. 잠시 시간을내어 주셔서 감사드립니다. – larpo