Я хочу переопределить форму RegistrationType FOSUserBundle, но в шаблоне Registration_content.html.twig я получил эту ошибку:
Ни свойство "firstname", ни один из методов "firstname()", "getfirstname()"/"isfirstname()"/"hasfirstname()" или "__call()" не существуют и не имеют общего доступа в классе "Symfony\ Компонент\Форма\Формвиев".
Это моя форма RegistrationType:
class RegistrationType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('firstname');
}
public function getParent() {
return 'fos_user_registration';
}
public function getName() {
return 'app_user_registration';
}
}
fos_user.yaml:
fos_user:
registration:
confirmation:
enabled: true
form:
name: app_user_registration
db_driver: orm
user_class: App\Entity\User
firewall_name: main
from_email:
address: [email protected]
sender_name: [email protected]
Объект пользователя:
class User extends BaseUser {
//
/**
* @ORM\Column(type="string", length=50, nullable=true)
*/
protected $firstname;
}
Registration_content.html.twig:
{{ form_start(form, {'method': 'post', 'action': path('fos_user_registration_register'), 'attr': {'class': 'fos_user_registration_register', 'id': 'form-sign-up'}}) }}
<div class="form-group form-group--float form-group--centered">
{{ form_widget(form.firstname, {'attr': {'class': 'form-control'}}) }}
<label>{{ 'firstname'|trans }}</label>
<i class="form-group__bar"></i>
</div>
{{ form_end(form) }}
В моей службе конфигурации я уже поставил это:
app.form.registration:
class: App\Form\RegistrationType
tags:
- { name: form.type, alias: app_user_registration }
User
вы вырезали, чтобы включить его в вопрос, но добавили ли вы геттер и сеттер для дополнительных свойств? Поскольку$firstname
защищен, вам необходимо иметь методыgetFirstname
иsetFirstname
. - person dlondero   schedule 16.02.2018