我創建了一個表格IntroUserType
有兩個內嵌形式IntroNameType
和IntroInfoType
有關的東西表單驗證錯誤是空白。Symfony的 - 雖然所有字段中輸入
當我提交表單,所有字段填寫,我獲得
string 'ERROR: This value should not be blank.
' (length=39)
這裏是我的形式:
IntroUserType
:
class IntroUserType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add("name", new IntroNameType())
->add("info", new IntroInfoType())
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults([
"data_class" => null,
"cascade_validation" => true
]);
}
public function getName()
{
return "intro_user_type";
}
}
IntroInfoType
:
class IntroInfoType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add("birthday", "birthday")
->add("gender", "choice",[
"expanded" => true,
"choices" => array(
"0" => "Male",
"1" => "Female"
)
])
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults([
"data_class" => "Zgh\FEBundle\Entity\UserInfo"
]);
}
public function getName()
{
return "intro_info_type";
}
}
IntroNameType
:
class IntroNameType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add("firstname", "text")
->add("lastname", "text")
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults([
"data_class" => "Zgh\FEBundle\Entity\User"
]);
}
public function getName()
{
return "intro_name_type";
}
}
這是我的觀點:
{{ form_start(form, {"action": url("zgh_fe.user_profile.user_post_intro_edit", {"id": app.user.id})}) }}
<div class="form-group">
{{ form_label(form.name.firstname) }}
{{ form_widget(form.name.firstname, {"attr": {"class": "form-control", "placeholder": "First name"} }) }}
<div class="validation" style="">{{ form_errors(form.name.firstname) }}</div>
</div>
<div class="form-group">
{{ form_label(form.name.lastname) }}
{{ form_widget(form.name.lastname, {"attr": {"class": "form-control", "placeholder": "Last name"} }) }}
<div class="validation" style="">{{ form_errors(form.name.lastname) }}</div>
</div>
<div class="form-group">
{{ form_label(form.info.birthday) }}
{{ form_widget(form.info.birthday) }}
<div class="validation" style="">{{ form_errors(form.info.birthday) }}</div>
</div>
<div class="form-group ">
{{ form_label(form.info.gender) }}
{{ form_widget(form.info.gender) }}
<div class="validation" style="">{{ form_errors(form.info.gender) }}</div>
</div>
<div class="row">
<input type="submit" name="submit" class="btn btn-danger btn-wide pull-right" value="Submit" />
</div>
{{ form_rest(form) }}
{{ form_end(form) }}
編輯
這裏是我的實體:
User
:
class User extends BaseUser
{
/**
* @var string
*
* @ORM\Column(name="firstname", type="string", length=255)
* @Assert\NotBlank()
*/
protected $firstname;
// ..
/**
* @var string
*
* @ORM\Column(name="lastname", type="string", length=255)
* @Assert\NotBlank()
*/
protected $lastname;
UserInfo
:
class UserInfo
{
use BasicInfo;
/**
* @ORM\Column(type="datetime")
* @Assert\NotBlank
*/
protected $birthday;
/**
* @ORM\Column(type="boolean")
* @Assert\NotBlank
*/
protected $gender;
// ..
難道說你缺少的是不能爲空實體領域之一? – dmnptr
@dmnptr我編輯了我的問題與實體,請看看它。謝謝。 –