【发布时间】:2021-01-29 19:13:39
【问题描述】:
我的 symfony 项目中有两种方法。我正在构建一个表单,提交时需要在新视图中重定向它的响应。
我不断收到错误,但奇怪的是我的响应在第一种方法中运行正常,但在第二种方法中我不断收到错误:
无法解析参数 $date of “App\Controller\ItController::render()”,也许你 忘记将控制器注册为服务或错过标记它 使用“controller.service_arguments”?
public function getIt(Request $request)
{
$form = $this->createFormBuilder()
->add('startDate', DateTimeType::class, [
'data' => new \DateTime('first day of this month'),
'widget' => 'single_text',
'html5' => false,
])
->add(
'save',
SubmitType::class,
[
'label' => 'Generate Billing Report',
'attr' => ['class' => 'btn-submit btn-primary action-save']
]
)
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$data = $form->getData();
$startDate = $data['date'];
$this->render($date->format('Y-m-d'));
return $this->redirectToRoute('rr');
}
return $this->render('details.html.twig', [
'form' => $form->createView()
]);
以及其他需要生成带有响应的第二个视图的方法:
/**
* @Route("/test", name="rr")
*/
public function render($date)
{
$response = $this->someService('route/defined/from/other/external/service, $date);
dump($response);
return $this->render('response.html.twig', [
'response' => $response
]);
}
当我在第一个方法中转储响应时它成功返回它但是当我尝试将它传递给另一个方法时它返回此错误。也许有一个选项可以在第一种方法中呈现第二个视图? 有人可以帮忙吗?谢谢
【问题讨论】:
-
我不清楚你想要完成什么。 $this->render($date->format('Y-m-d'));返回一个 Response 对象,但您将其丢弃。然后重定向告诉浏览器发出一个新请求。您期望第二种方法中的 $date 来自哪里?
-
这不是一个线索/ :) 我怎样才能将它传递给其他控制器方法? @Cerad
标签: php symfony render symfony4