【问题标题】:Saving a new tree from text with TreeBehavior in CakePHP在 CakePHP 中使用 TreeBehavior 从文本中保存新树
【发布时间】:2021-04-18 10:13:00
【问题描述】:

使用 CakePHP 3.9 中的TreeBehavior,您可以轻松创建formatted list

$list = $categories->find('treeList');

我的分类
_有趣
__运动
___冲浪
___滑冰
_旅行
__国家
__国际

反过来也可以吗?我让我的用户修改树列表(如上面的示例),我想将结果保存为新树。

是否有内置功能可以使用现有数据(作为格式化文本或级联实体)创建新树?

对我来说,另一种方法是处理列表并一一保存实体,然后让 TreeBehavior 计算出 lftrght 列。

【问题讨论】:

    标签: cakephp tree cakephp-3.x


    【解决方案1】:

    没有这样的内置功能,不,您必须自己处理。

    你有两种选择,要么一个一个地保存节点,让行为在每次保存时更新lft/rght 字段,或者在保存时禁用行为,然后恢复树,可能使用一个范围,以防您有多棵树。

    在任何情况下,您都需要在保存时为您的记录相应地填充 parent_id 字段,如果没有该字段,树行为将无法生成正确的 lft/rght 字段值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      相关资源
      最近更新 更多