我想创建一个表单来注册新的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()
函数,但我不明白为什么需要它。
谢谢
答案 0 :(得分:1)
似乎您使用的是Symfony的NumberType
,而不是您自己的。
检查AdminController
文件顶部的名称空间,该名称空间正在使用NumberType
。
如果有:
use Symfony\Component\Form\Extension\Core\Type\NumberType;
这意味着您使用的是错误的课程。
应该是这样的:
use App\Some\Namespace\To\Your\NumberType;