Symfony : CreateForm 为什么我的textarea不显示?

问题描述 投票:0回答:1

我在使用Symfony创建的表单中遇到了一个问题,就是如何显示文本框。

文本框出现在html中,但是没有显示 display: block 在css中。它在css中什么都没有,要清楚。

当我在CSS中添加一个 display:block 在自己的css中,它只是被chromefirefox剥离了。

这个问题只发生在我从一个单独的类中创建表单的时候,而不是在控制器的函数中创建表单的时候。

以下是我的代码。

AdController.php

<?php

namespace App\Controller;


use App\Entity\Ad;
use App\Form\AdType;
use App\Repository\AdRepository;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class AdController extends AbstractController
{


    /**
     * Create ad
     *
     * @Route("/ads/new", name="ads_create")
     * 
     * @return Response
     */
    public function create(){

         $ad = new Ad();

         $form = $this->createForm(AdType::class, $ad);


        return $this->render('ad/new.html.twig', [
            'form' => $form->createView()
        ]);
    }


}

广告类型.php

<?php

namespace App\Form;

use App\Entity\Ad;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;

class AdType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('title')
            ->add('slug')
            ->add('price')
            ->add('introduction')
            ->add('content', TextareaType::class, [
                'attr' => array('cols' => '5', 'rows' => '5')])
            ->add('coverImage')
            ->add('rooms')
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => Ad::class,
        ]);
    }
}

而小树枝 。

{% extends 'base.html.twig' %}
{% form_theme form 'bootstrap_4_layout.html.twig' %}

{% block title %}Create ad{% endblock %}

{% block body %}
    <div class="container">
        <h1>lorem ipsum</h1>


        {{form_start(form)}}

            {{ form(form) }}



        {{form_end(form)}}

    </div>
{% endblock %}

我试了很多东西,但我还是不明白如何解决这个问题。谁有办法解决这个问题?

先谢谢你!

css forms symfony symfony4
1个回答
0
投票

我的第一个猜测是 content 是某种保留字。

当你重命名这个属性时会发生什么?

此外,尝试单独渲染表单小部件,例如.NET Framework 2.0。

{{ form_widget(form.title) }}
{{ form_widget(form.slug) }}
...
{{ form_widget(form.content) }} 
...

如果这给你带来任何错误--你将有一些更多的信息可以调试

© www.soinside.com 2019 - 2024. All rights reserved.