我这里有个小问题。我对数据库中的每个产品都有 category_id。我还在数据库中有一个类别表,用于类别及其 ID。现在我需要放在一起来看。我已经进行了添加、编辑和删除操作,还显示了操作,其中类别与产品描述的其余部分一起显示。但是现在我遇到了索引操作的问题。
在节目中我这样做了:
public function getProductTable()
{
if (!$this->productTable) {
$sm = $this->getServiceLocator();
$this->productTable = $sm->get('Product\Model\ProductTable');
}
return $this->productTable;
}
public function getCategoryTable() {
if(!$this->categoryTable){
$this->categoryTable = $this->getServiceLocator()
->get('Product\Model\CategoryTable');
}
return $this->categoryTable;
}
public function showAction()
{
$id = (int) $this->params()->fromRoute('id', 0);
if (!$id) {
return $this->redirect()->toRoute('product', array(
'action' => 'add'
));
}
try {
$product = $this->getProductTable()->getProduct($id);
$category = $this->getCategoryTable()->getCategory($product->category_id);
}
catch (\Exception $ex) {
return $this->redirect()->toRoute('product', array(
'action' => 'index'
));
}
这很容易,因为在显示操作期间我会从 DB 中得到一个结果,所以我确切地知道 category_id 产品有什么。
但是,在 index.html 中,我将从 DB 中获取所有产品,并且需要在整个 Foreach 中对其进行迭代。那是我需要接电话的地方
$this->getCategoryTable()->getCategory($id);
由于这是一个使用 sm 来使用模型方法的控制器方法,我应该如何在我的 index.html 视图中使用它来获取每个产品的确切类别名称?