1
私はSynfomyでカスタムフォームクラスを自分自身に教えるために非常に小さなテスト形式を作成しました。私は出力を持っていないと私は間違いを見つけることはありません。私は誰かが私を助けることができるといいですカスタムフォームクラスを使用した小枝の出力がありません
クラスからマイ:
<?php
namespace AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\TextType;
class PfsFormType extends AbstractType
{
public function buildTheForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name')
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'AppBundle\Entity\PfsForm'
));
}
}
私のエンティティ:フォームを呼び出す必要があります
<?php
namespace AppBundle\Entity;
class PfsForm
{
private $name;
private $frage;
/**
* @return mixed
*/
public function getFrage()
{
return $this->frage;
}
/**
* @param mixed $frage
*/
public function setFrage($frage)
{
$this->frage = $frage;
}
/**
* @return mixed
*/
public function getName()
{
return $this->name;
}
/**
* @param mixed $name
*/
public function setName($name)
{
$this->name = $name;
}
}
コントローラー:
<?php
namespace AppBundle\Controller;
use AppBundle\Entity\PfsForm;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use AppBundle\Form\PfsFormType;
class IndexController extends Controller
{
public function startAction()
{
$pfsForm = new PfsForm();
$form = $this->createForm(PfsFormType::class,$pfsForm);
return $this->render(
'index.html.twig',array(
'form' => $form->createView(),
)
);
}
}
そして小枝テンプレート:
enter code here
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{{ dump() }}
{{ form_start(form) }}
{{ form_widget(form) }}
{{ form_end(form) }}
</body>
</html>
小枝ザッツ
出力をダンプ:あなたはフォームbuildTheForm
で使用しようとしている
array:2 [▼
"form" => FormView {#408 ▼
+vars: array:24 [▼
"value" => PfsForm {#361 ▶}
"attr" => []
"form" => FormView {#408}
"id" => "pfs_form"
"name" => "pfs_form"
"full_name" => "pfs_form"
"disabled" => false
"label" => null
"label_format" => null
"multipart" => false
"block_prefixes" => array:3 [▶]
"unique_block_prefix" => "_pfs_form"
"translation_domain" => null
"cache_key" => "_pfs_form_pfs_form"
"errors" => FormErrorIterator {#419 ▶}
"valid" => true
"data" => PfsForm {#361 ▶}
"required" => true
"size" => null
"label_attr" => []
"compound" => true
"method" => "POST"
"action" => ""
"submitted" => false
]
+parent: null
+children: array:1 [▼
"_token" => FormView {#424 ▶}
]
-rendered: false
}
"app" => AppVariable {#435 ▼
-tokenStorage: TokenStorage {#239 ▶}
-requestStack: RequestStack {#200 ▶}
-environment: "dev"
-debug: true
}
]
あなたの助けのためのThxを ミカ
はあなたの助けのためにそんなにありがとう。メソッドの名前は "whatEverName"ではなく "buildForm"でなければなりません。 – freemindghost
@freemindghost、ああ、実際にはかなり簡単に見つけることができます。 'PfsFormType extends AbstractType'を参照してください。これはあなたのクラス 'PfsFormType'が' AbstractType'のメソッドをオーバーライドすることを意味します。もしあなたがそれを開くと、 'function buildForm()'に本体がないことがわかります。クラス内で本体を実装する必要があります。幸運;) – pavlovich
私は通常インターフェイスで動作するので、私はdefine.thxメソッドを使用するためのメッセージを手に入れます – freemindghost