目前我有一个直接调用控制器的表单。它看起来像这样:
$form = $this->CreateForm(
new InscriptionWithPackType(
$round,
$this-> getUser(),
$concours->getNbQuestions ()
), $inscription, array('em' => $this->getDoctrine()->getManager()));
表单管理游戏。
控制器包含所有业务逻辑。不好 ... 所以我开始在服务中花费所有这些逻辑。
对于表单,我还创建了一个注入FormFactoryInterface的服务(inscriptionManager)
我对第一个形式参数有疑问:$round
(见上文)。
让我解释一下:$round
是一个实体。
我不知道传递服务的实体参数的语法是什么。
答案 0 :(得分:0)
您不应将实体传递给服务。
将实体存储库注入服务,或者在服务中创建一个单独的方法,以获取传递的实体:
class InscriptionManager
{
public function __construct(your, dependencies)..
public function doTheMagic(EntityClass $round)
{
// do the magic
}
}
并在控制器中调用
// .. inside the action
$this->insrcriptionManager->doTheMagic($round);