如何搜索 Doctrine NestedSet?
我如何在嵌套集中搜索,并以树结构恢复过滤后的数据?
示例:
根
|
类别1:
- 子类别1
- 子类别2
- 子类别3 cat2:
- subcateg1
- subc2
我搜索“subc2”。
根
|
cat2:
- subc2
这是我的测试表的固定装置:
FokonyviKategoria:
fok0:
megnevezes: Főkönyvi kategóriák
children:
fok1:
megnevezes: Főkönyvi teszt 1
fok2:
megnevezes: Főkönyvi teszt 2
fok3:
megnevezes: Főkönyvi teszt 3
children:
fok4:
megnevezes: Főkönyvi teszt 4
fok5:
megnevezes: Főkönyvi teszt 5
和表定义:
FokonyviKategoria:
actAs:
NestedSet:
hasManyRoots: false
columns:
megnevezes: string(255)
relations:
Szamlak:
type: many
local: id
foreign: fokonyvi_kategoria_id
foreignAlias: FokonyviKategoria
这是我的尝试:
$treeObject = Doctrine_Core::getTable('EszkozKategoria')->getTree();
$q = Doctrine_Query::create()
->select('e.megnevezes')
->from('EszkozKategoria e')
->where('megnevezes LIKE "%fúró%"');
$treeObject->setBaseQuery($q);
$tree = $treeObject->fetchTree();
$treeObject->resetBaseQuery();
$query = $treeObject->getBaseQuery();
$query->setHydrationMode(Doctrine_Core::HYDRATE_ARRAY_HIERARCHY);
$treeObject->setBaseQuery($query);
foreach ($tree as $node) {
//$treeObject2 = Doctrine_Core::getTable('EszkozKategoria')->getTree();
//$tmp = $treeObject2->fetchBranch($node->id, array('depth' => 3), Doctrine_Core::HYDRATE_ARRAY_HIERARCHY);
//var_dump($tmp);
//echo $node->getNode()->getPath(' / ', true) . "\n";
$a = $node->getNode()->getAncestors();
var_dump($a);
}
我想要节点和所有祖先。
How can i searching in nested set, and recover the filtered data in tree structure?
example:
root
|
cat1:
- subcat1
- subcat2
- subcat3
cat2: - subcateg1
- subc2
I search the 'subc2'.
root
|
cat2:
- subc2
This is my fixtures for the test table:
FokonyviKategoria:
fok0:
megnevezes: Főkönyvi kategóriák
children:
fok1:
megnevezes: Főkönyvi teszt 1
fok2:
megnevezes: Főkönyvi teszt 2
fok3:
megnevezes: Főkönyvi teszt 3
children:
fok4:
megnevezes: Főkönyvi teszt 4
fok5:
megnevezes: Főkönyvi teszt 5
And the table definition:
FokonyviKategoria:
actAs:
NestedSet:
hasManyRoots: false
columns:
megnevezes: string(255)
relations:
Szamlak:
type: many
local: id
foreign: fokonyvi_kategoria_id
foreignAlias: FokonyviKategoria
And this my attempt:
$treeObject = Doctrine_Core::getTable('EszkozKategoria')->getTree();
$q = Doctrine_Query::create()
->select('e.megnevezes')
->from('EszkozKategoria e')
->where('megnevezes LIKE "%fúró%"');
$treeObject->setBaseQuery($q);
$tree = $treeObject->fetchTree();
$treeObject->resetBaseQuery();
$query = $treeObject->getBaseQuery();
$query->setHydrationMode(Doctrine_Core::HYDRATE_ARRAY_HIERARCHY);
$treeObject->setBaseQuery($query);
foreach ($tree as $node) {
//$treeObject2 = Doctrine_Core::getTable('EszkozKategoria')->getTree();
//$tmp = $treeObject2->fetchBranch($node->id, array('depth' => 3), Doctrine_Core::HYDRATE_ARRAY_HIERARCHY);
//var_dump($tmp);
//echo $node->getNode()->getPath(' / ', true) . "\n";
$a = $node->getNode()->getAncestors();
var_dump($a);
}
I want the node(s), and all ancestors.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我会这样:
i would so: