0

在我的模型中,我有:

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 存在,并且在数据库中有正确的行要显示。

我不知道为什么会这样。

4

1 回答 1

0

不应该$item代替$rows

$subRows = $this->acl_menu->fetchForParentId($item->acl_menu_id);
于 2013-07-01T08:09:05.293 回答