我刚刚开始使用 Doctrine 和 Jackalope DBAL 实现来学习 PHPCR。
使用 Symfony 2 调试工具栏,我可以看到,对于一个简单的表单和父属性选择,它需要 15 个查询(...
为了便于阅读而添加):
[2014-08-24 15:55:48] doctrine.DEBUG: SELECT ... FROM phpcr_workspaces ...
[2014-08-24 15:55:48] doctrine.DEBUG: SELECT ... FROM phpcr_namespaces
[2014-08-24 15:55:48] doctrine.DEBUG: SELECT ... FROM phpcr_type_nodes
[2014-08-24 15:55:48] doctrine.DEBUG: SELECT ... FROM phpcr_type_props ...
[2014-08-24 15:55:48] doctrine.DEBUG: SELECT ... FROM phpcr_type_childs ...
[2014-08-24 15:55:48] doctrine.DEBUG: SELECT ... FROM phpcr_type_nodes ...
[2014-08-24 15:55:48] doctrine.DEBUG: SELECT ... FROM phpcr_type_props ...
[2014-08-24 15:55:48] doctrine.DEBUG: SELECT ... FROM phpcr_type_childs ...
[2014-08-24 15:55:48] doctrine.DEBUG: SELECT ... FROM phpcr_nodes ...
[2014-08-24 15:55:48] doctrine.DEBUG: SELECT ... FROM phpcr_nodes ...
[2014-08-24 15:55:48] doctrine.DEBUG: SELECT ... FROM phpcr_nodes ...
[2014-08-24 15:55:48] doctrine.DEBUG: SELECT ... FROM phpcr_nodes ...
[2014-08-24 15:55:48] doctrine.DEBUG: SELECT ... FROM phpcr_nodes ...
[2014-08-24 15:55:48] doctrine.DEBUG: SELECT ... FROM phpcr_nodes ...
[2014-08-24 15:55:48] doctrine.DEBUG: SELECT ... FROM phpcr_nodes ...
我只有三个节点:
/
/root
/root/child
我添加了一个简单的表单(如此处所述)来创建一个新文档并设置其父级:
$form = $this->createFormBuilder($doc = new Document(), ['required' => false])
->add('name', 'text')
->add('title', 'text')
->add('parent', 'phpcr_document', [
'property' => 'id',
'class' => 'Acme\DemoBundle\Document\Document',
'multiple' => false,
])
->add('content', 'textarea')
->add('submit', 'submit')
->getForm()
->handleRequest($request);
if ($form->isValid()) {
// ...
}
return [('form' => $form->createView()];
如何减少查询次数?