我正在尝试将参数从FORM传递到树枝,这与我输入数据的参数不同。如果这个解释很乱-这是更简化的版本...我刚刚开始学习php + symfony,所以请不要太伤我...
我在“创建”页面上有两个空白字段, 我给他们分别说AAA和BBB, 我希望AAA和BBB出现在另一个“ FORMZ”页面上。
我不使用任何数据库,因此不需要使用ObjectManager等,只是为了了解一切工作原理...
我已经创建了ArticleFormType.php文件
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title', TextType::class, [
'attr' => [
'placeholder' => "title from ArticleFormType",
'class' => 'form-control'
]
])
->add('content')
->add('save', SubmitType::class, [
'label' => 'SAVE'
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => MyClassArticle::class,
]);
}
那是我的控制器:
/**
* @Route("/formz", name="formz")
*/
public function index()
{
$title = 'Created by DT';
return $this->render('formz/index.html.twig', [
'title' => $title
]);
}
/**
* @Route("/formz/create", name="create")
*/
public function create (Request $request, ObjectManager $manager ) {
$article = new MyClassArticle();
$task = new ArticleFormType();
$form = $this->createForm(ArticleFormType::class, $article, [
'action' => $this->generateUrl('create'),
]);
$form->handleRequest($request);
dump($article);
if($form->isSubmitted() && $form->isValid()) {
dump($article);
return $this->redirectToRoute('formz');
}
return $this->render('formz/create.html.twig', [
'formTest' => $form->createView()
]);
}
我不知道如何将$ article转移到公共函数index()-听说可以通过将参数从公共函数create()传递给公共函数index( )。 有人可以帮我吗?
我先谢谢你!
答案 0 :(得分:0)
您需要将文章存储在某个地方,最好是通过学说(实体保存)保存
然后您需要将索引路由更新为类似
@Route("/formz/{article}", name="formz")
function index(Artile $article = null)
然后您可以将以下内容用于redirectToRoute
$this->redirectToRoute("formz", array("article" => $article))
那应该可以解决您的问题。