scope_column 在 symfony 嵌套集中如何工作?

发布于 2024-11-24 01:40:35 字数 961 浏览 0 评论 0原文

我想知道scope_column如何使用symfony中的Propel嵌套集工作。

我想使用嵌套集保存表单中的每个项目。这里有一些代码:

子菜单模型具有以下属性: id、parent_id、url、menu_user_atribute_id,

//SubMenu.php

public function doSave(PropelPDO $con)
{
  if($this->getParentId() == null)
  {
    $this->makeRoot();
  }else{
    $parent = SubMenuPeer::retrieveByPK($this->getParentId());
    $this->setParent($parent);
    $this->getParent()->addChild($this);
  }
  parent::doSave($con);
}

但是当我想保存另一个具有不同范围值的项目时(在本例中scope_column = menu_user_role_id),它被第一个scopeValue 替换。

the submenu item 19 with menu_user_role=28, but it should be 29.

id  parent_id  menu_user_role_id  Detail_url_id   TreeLeft  treeRight  treeLevel
17  NULL      28                  1               1         2          0
18  17        28                  2               2         3          1
19  17        28                  3               2         3          1

I would like to know how the scope_column works using Propel nested set in symfony.

I'd like to save each item from a form using nested set. here some code:

the submenu model has this attributes:
id, parent_id,url, menu_user_atribute_id

//SubMenu.php

public function doSave(PropelPDO $con)
{
  if($this->getParentId() == null)
  {
    $this->makeRoot();
  }else{
    $parent = SubMenuPeer::retrieveByPK($this->getParentId());
    $this->setParent($parent);
    $this->getParent()->addChild($this);
  }
  parent::doSave($con);
}

but when I want to save another item with a diferente scope value (in this case scope_column = menu_user_role_id), this is replaced by the first scopeValue.

the submenu item 19 with menu_user_role=28, but it should be 29.

id  parent_id  menu_user_role_id  Detail_url_id   TreeLeft  treeRight  treeLevel
17  NULL      28                  1               1         2          0
18  17        28                  2               2         3          1
19  17        28                  3               2         3          1

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

花之痕靓丽 2024-12-01 01:40:35

您需要先启用范围的使用,然后才能定义scope_id:

<behavior name="nested_set">
  <parameter name="use_scope" value="true" />
  <parameter name="scope_column" value="menu_user_role_id" />
</behavior>

You need to enable the use of a scope before you can define what the scope_id is:

<behavior name="nested_set">
  <parameter name="use_scope" value="true" />
  <parameter name="scope_column" value="menu_user_role_id" />
</behavior>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文