Doctrine2实体和Zf2 JsonModel()

时间:2014-02-14 10:28:28

标签: doctrine-orm iterator zend-framework2 traversal

我看到几种方法可以给Zend\View\Model\ViewModel::setVariables一个数组:

  • 在实体中实现toArray()并生成JsonModel($ entity-> toArray())
  • 使用DoctrineModule\Stdlib\Hydrator\DoctrineObject$hydrator->extract($entity);
  • 为实体实现Iterator并从中扩展

问题是,如何为Doctrine2实体实现迭代器,这是一个好主意还是有人知道更好的方法?

1 个答案:

答案 0 :(得分:-2)

通常,迭代实体是个坏主意。

如果要将实体传递给视图模板,可以执行以下操作:

<?php
// IndexController.php
namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class IndexController extends AbstractActionController {

  // The "index" action
  public function indexAction() { 

    // Create your entity here
    $entity = ...

    // Pass it to view template for rendering
    return new ViewModel(array(
        'entity' => $entity
    ));
  }  
}

然后,在您的视图模板中,您将能够以下列方式访问该实体:

<?php echo $this->entity->getId(); ?>