cakephp - 在 CakePHP 中使用 TreeBehavior 从文本中保存新树
问题描述
使用 CakePHP 3.9 中的TreeBehavior,您可以轻松创建格式化列表:
$list = $categories->find('treeList');
我的类别
_Fun
__Sport
___Surfing
___Skating
_Trips
__National
__International
反过来也可以吗?我让我的用户修改树列表(如上面的示例),我想将结果保存为新树。
是否有内置功能可以使用现有数据(作为格式化文本或级联实体)创建新树?
对我来说,另一种方法是处理列表并一一保存实体,然后让 TreeBehavior 计算出lft
和rght
列。
解决方案
没有这样的内置功能,不,您必须自己处理。
您有两个选择,要么一一保存节点,让行为在每次保存时更新lft
/rght
字段,要么在保存时禁用行为,然后恢复树,如果您有多个树,可能使用范围。
在任何情况下,您都需要parent_id
在保存时相应地为您的记录填充字段,如果没有该字段,树行为将无法生成正确的lft
/rght
字段值。
推荐阅读
- android - Firebase 数据库 android studio 在从服务器中提取数据时崩溃
- c# - 为什么 Stripe CLI HttpPost webhook 对 Asp.NET Core MVC 控制器的调用(事件)会在 System.Net.Security.dll 中出现“System.IO.IOException”错误?
- python - 烧瓶登录中基于角色的授权
- verilog - 如何在 Synopsys Verdi 中使用 Find Scope
- c++ - 在 C++ 中使用初始化列表填充多维结构数组的问题
- opengl - 在 OpenGL glTexImage2D() 中,如果“数据”指针为 NULL,最后两个枚举是否执行任何操作?
- pine-script - 结合STOCH RSI和Macd进行策略
- web-config - 最有效的 web.config 重定向
- javascript - 将函数参数传递给另一个函数
- mongodb - 为什么在聚合函数中使用 $project 时重命名 mongodb 中对象的子数组中的字段返回数组?