{% form_errors(form) %}
でフォームエラーを表示する際に問題が発生しました。 表示されるメッセージが間違っています。フィールドは反転されています。これがバグか悪いか分からない。Symfony form_errors(form)間違ったフィールド名、バグ、または私のコードが間違っていますか?
とにかく、これは私が任意のオブジェクトまたはエンティティに結合されていない新しいフォームタイプを作成しています私のコントローラのアクションの一部です:SendMailType
2つのフィールド、recipient
とtext
を持って
class MyController extends Controller
{
public function newAction(Request $request)
{
// NOTE not passing any data to createForm method
$context = $this->get('security.context');
$form = $this->createForm(new SendMailType($context));
if('GET' == $request->getMethod()) // GET
return array('form' => $form->createView());
$form->bindRequest($request); // POST
if(!$form->isValid()) return array('form' => $form->createView());
return new Response('Form is valid');
}
}
。 recipient
は空白にすることはできません。フィールドtext
が指定されていません検証ルールを持っていないので、あなたが、これは完全に間違っているを見ることができるように
Fields "text" are invalid.
:
class SendMailType extends AbstractType
{
/**
* @var Symfony\Component\Security\Core\SecurityContext
*/
protected $context;
public function __construct(SecurityContext $context)
{
$this->context = $context;
}
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('recipient', 'text')
->add('text', 'textarea');
}
public function getDefaultOptions(array $options)
{
return array(
'validation_constraint' => new Collection(array(
'recipient' => array(new NotBlank()),
))
);
}
public function getName() { return 'send_mail'; }
}
{% form_errors(form) %}
を使用して POST に私はエラーを取得しています。それがすべてで働いていたことに驚いの
This value should not be blank.
どのように 'allowExtraFields'オプションはフィールド' text'についての奇妙なメッセージを説明することができますか? – gremo
デフォルトでは、すべてのフィールドが検証されると想定されます。したがって、「テキスト」には妥当性検査がないため、無効でなければならないという苦情があります。ちょっと変だけど、そこに行くよ。 – Cerad