我有一个非常简单的实体(WpmMenu),它以自引用关系(称为adjecent list)保存相互连接的菜单项?所以在我的实体中我有:
protected $id
protected $parent_id
protected $level
protected $name
Run Code Online (Sandbox Code Playgroud)
与所有的getter/setter关系是:
/**
* @ORM\OneToMany(targetEntity="WpmMenu", mappedBy="parent")
*/
protected $children;
/**
* @ORM\ManyToOne(targetEntity="WpmMenu", inversedBy="children", fetch="LAZY")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onUpdate="CASCADE", onDelete="CASCADE")
*/
protected $parent;
public function __construct() {
$this->children = new ArrayCollection();
}
Run Code Online (Sandbox Code Playgroud)
一切正常.当我渲染菜单树时,我从存储库中获取根元素,获取其子元素,然后循环遍历每个子节点,获取其子节点并递归执行此操作,直到我渲染每个项目.
会发生什么(以及我正在寻求解决方案)是这样的:目前我有5个等级= 1个项目,并且每个项目都有3个等级= 2个项目附加(并且将来我将使用等级= 3个项目以及).要获取菜单树Doctrine的所有元素,请执行:
总计:22个查询
所以,我需要找到一个解决方案,理想情况下我想只有1个查询.
所以这就是我想要做的事情: 在我的实体存储库(WpmMenuRepository)中,我使用queryBuilder并获得按级别排序的所有菜单项的平面数组.获取根元素(WpmMenu)并从加载的元素数组中"手动"添加其子元素.然后递归地对孩子们这样做.这样做我可以拥有相同的树但只有一个查询.
所以这就是我所拥有的:
WpmMenuRepository:
public function setupTree() {
$qb = $this->createQueryBuilder("res");
/** @var Array */
$res = $qb->select("res")->orderBy('res.level', 'DESC')->addOrderBy('res.name','DESC')->getQuery()->getResult();
/** @var WpmMenu */
$treeRoot = …Run Code Online (Sandbox Code Playgroud) [google chrome 28]
我chrome.experimental.identity在打包的应用程序中使用API 并且 getAuthToken 工作正常 - get 的令牌,我可以使用它获取用户信息等。我知道身份 API 正在从实验性转移到主干,例如从 chrome 29我将能够从我的清单中使用chrome.identity和删除"experimental"许可。
问:如果我想做一个注销按钮是removeCachedAuthToken怎么回事?我试图在experimental.identity 中使用它,但它什么也没做。
我有一个我想分发的Sf2项目.该项目已经可以使用,但是应该/将会随着时间的推移进行修改,所以我正在寻找一个解决方案,而不是重新发明轮子,在我的应用程序中实现更新功能,以便在有更新可用时通知人们 - click程序可以将已部署的版本升级到最新版本.
你有什么想法?有没有类似的东西,我可以看一看?
我正在为Sugar v.6.5.16构建一个自定义模块.这个模块使用其他模块的数据,所以我的模块不需要数据库表,我不想要,不可导入,我实际上不需要任何东西.我有自己的控制器,自己的课程等,故事结束.有用.现在我想创建一个可安装的包,不,我不想在STUDIO中创建一个包.我已经变得非常沮丧,因为每个人都建议在工作室中创建包,选择一种类型(基本,公司等),这将添加数据结构,bean,db表 - 这真的很帅但我不想要所有那东西.我实际上用studio创建了一个测试包,我从清单文件中删除了所有bean信息并杀死了vardefs内容,然后我设法安装它,但后来我的模块没有列在"module = Administration&action = ConfigureTabs"中.
所以,问题是我在哪里可以看到我的模块列出?
symfony ×2
auto-update ×1
bundle ×1
composer-php ×1
doctrine ×1
module ×1
orm ×1
php ×1
sugarcrm ×1