#php #symfony
#php #symfony
Вопрос:
Я хочу создать форму для регистрации новой, Number
поэтому я создал NumberType
(код ниже). Но в верхней части формы добавляется поле, как показано ниже :
<input type="text" id="number" name="number" required="required" class="form-control">
NumberType.php
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('created_by', EmailType::class, [
'label' => 'Email *',
'attr' => array(
'placeholder' => 'monadresse@mail.fr',
)
])
->add('title', TextType::class, [
'label' => 'Titre *'
])
->add('value', TextType::class, [
'label' => 'Valeur *'
])
->add('source', UrlType::class, [
'label' => 'Source *'
])
->add('description', TextareaType::class, [
'label' => 'Description',
'required' => false,
'attr' => array(
'placeholder' => 'Description du chiffre proposé'
)
])
->add('tags')
->add('recaptcha', EWZRecaptchaType::class)
->add('send', SubmitType::class, ['label' => 'Envoyer'])
;
}
AdminController.php
$number = new Number();
// Form creation
$form = $this->createForm(NumberType::class, $number);
Когда я вызываю URL, связанный с моей функцией в моем контроллере, у меня была ошибка, которая гласила
Не удается преобразовать число в строку
Итак, я добавил __tostring()
функцию, но я не понимаю, зачем она ему нужна.
Спасибо,
Ответ №1:
Похоже, вы используете Symfony NumberType
вместо своего собственного.
Проверьте пространство имен в верхней части AdminController
файла, которое NumberType
используется.
Если есть:
use SymfonyComponentFormExtensionCoreTypeNumberType;
тогда это означает, что вы используете неправильный класс.
Это должно быть что-то вроде:
use AppSomeNamespaceToYourNumberType;
Комментарии:
1. Спасибо за ваш ответ. На самом деле я использую хороший
use AppFormNumberType;
. Я просто разобрался с этим, я переименовалNumberType
вMyNumberType
, и пока все хорошо: D