Symfony2在服务参数中设置实体

时间:2015-01-13 14:24:23

标签: php symfony

目前我有一个直接调用控制器的表单。它看起来像这样:

$form = $this->CreateForm(
    new InscriptionWithPackType(
        $round,
        $this-> getUser(),
        $concours->getNbQuestions ()
    ), $inscription, array('em' => $this->getDoctrine()->getManager()));

表单管理游戏。

控制器包含所有业务逻辑。不好 ... 所以我开始在服务中花费所有这些逻辑。

对于表单,我还创建了一个注入FormFactoryInterface的服务(inscriptionManager)

我对第一个形式参数有疑问:$round(见上文)。

让我解释一下:$round是一个实体。

我不知道传递服务的实体参数的语法是什么。

1 个答案:

答案 0 :(得分:0)

您不应将实体传递给服务。

将实体存储库注入服务,或者在服务中创建一个单独的方法,以获取传递的实体:

class InscriptionManager 
{
  public function __construct(your, dependencies)..

  public function doTheMagic(EntityClass $round)
  {
    // do the magic
  }
}

并在控制器中调用

// .. inside the action
$this->insrcriptionManager->doTheMagic($round);