在我的模型中,我有:
public function fetchForParentId($id)
{
$resultSet = $this->tableGateway->select(array('acl_menu_parent_id' => $id));
$resultSet->buffer();
$resultSet->next();
return $resultSet;
}
和控制器:
$sm = $this->getServiceLocator();
$this->layout()->acl_menu = $sm->get('AdminSettings\Model\AclMenuTable');
在我看来,我可以使用模型功能:
<?php
$rows = $this->acl_menu->fetchForParentId(0);
foreach ($rows as $item):
echo $item->acl_menu_name.'<br>';
endforeach;
?>
它有效,但如果我尝试运行它:
<?php
$rows = $this->acl_menu->fetchForParentId(0);
foreach ($rows as $item):
echo $item->acl_menu_name.'<br>';
$subRows = $this->acl_menu->fetchForParentId($item->acl_menu_id);
foreach ($subRows as $subItem):
echo ' - '.$subItem->acl_menu_name.'<br>';
endforeach;
endforeach;
?>
第二个 foreach 不起作用, $rows->acl_menu_id 存在,并且在数据库中有正确的行要显示。
我不知道为什么会这样。