我使用了针对Doctrine 2和Closure Table Strategy的Tree-Nestedset行为扩展。在我的网站上,用户可以创建文件夹和子文件夹并查看它们。我通过使用Closure Table策略实现了这一点,并使用 childrenHierarchy()方法渲染文件夹:
$directoryTree = $repository->childrenHierarchy(
null,
true,
array(
'decorate' => false,
'childSort' => array('field' => 'directory_name', 'dir' => 'asc')
));
它工作正常,但它返回所有用户的所有文件夹,我不知道如何定义 user_id ,在这种情况下只渲染属于登录用户的文件夹。有没有办法做到这一点?
我很高兴你的答案。
答案 0 :(得分:3)
来自doc:
childrenHierarchy:这个有用的方法允许你构建一个数组 表示树的层次结构的节点。 参数:节点:如果你 传递一个节点,该方法将返回其子节点。默认为" null" (这意味着它将返回所有节点)。
会是这样的:
// example,
$loggedInUserFolder = SOME_METHOD_RETURNS_USER_FOLDER($this->getUser());
$directoryTree = $repository->childrenHierarchy(
$loggedInUserFolder,
true,
array(
'decorate' => false,
'childSort' => array('field' => 'directory_name', 'dir' => 'asc')
));