我仍在努力使用Doctrine QueryBuilder,因为当我想在select表达式中添加另一个元素时,我认为它无法正常工作.
在这两种情况下,doctrine $ queryBuilder-> getQuery() - > getResults()返回一个数组,其中实体表示为字符串而不是对象:
情况1:
$queryBuilder = $this->em->createQueryBuilder();
$queryBuilder->select("e, 99 as number");
Run Code Online (Sandbox Code Playgroud)
它返回
array(4) {
[0]=>
array(2) {
[0]=> string(30) "Profile_Entity" //notice this is a string but it should be an object instance
["number"]=> string(2) "99"
}
...
...
Run Code Online (Sandbox Code Playgroud)
如果我会写
$queryBuilder = $this->em->createQueryBuilder();
$queryBuilder->select("e");
$queryBuilder->select("99 as number");
Run Code Online (Sandbox Code Playgroud)
它将返回与情况1相同的东西
下面是它通常应该是什么(这里只是select表达式中的一个元素)
array(4) {
[0]=> object(stdClass)#935 (39) {
["__CLASS__"]=> string(30) "Profile_Entity"
["id"]=> int(46)
["headline"]=> string(7) "asdasd
...
...
...
Run Code Online (Sandbox Code Playgroud) 通知:
$this->add(array(
'type' => 'Zend\Form\Element\Collection',
'name' => 'openHours',
'options' => array(
'label' => 'Hours',
'count' => 2,
'should_create_template' => true,
'template_placeholder' => '__placeholder__',
'target_element' => array(
'type' => 'Listings\Form\OpenHourFieldset',
),
),
));
Run Code Online (Sandbox Code Playgroud)
在 form.phtml
<?php $openHoursCollection = $form->get('openHours'); ?>
<?php foreach ($openHoursCollection as $collection){ ?>
<fieldset>
<?php echo $this->formSelect($collection->get('weekday')); ?>
</fieldset>
<?php } ?>
<?php echo $this->formCollection->renderTemplate($openHoursCollection); ?>
Run Code Online (Sandbox Code Playgroud)
当遍历 zend2 中的集合项以使其正常工作时,它还需要一个自定义模板。但是如何$this->formCollection->renderTemplate($collection)
渲染自定义 HTML 呢?我需要所有这些集合渲染都是自定义的
有谁知道 ?谢谢
我是PHP OOP编程方面的新手,我不明白以下类名的时间和方式以及何时使用它们:
$a = new Classname();
$a = new Classname;
$a = ClassName::function();
$a = ClassName::getInstance();
Run Code Online (Sandbox Code Playgroud)
非常感谢和抱歉愚蠢的问题: