Easy Admin TextEditorField 不采用 html

发布于 2025-01-15 05:31:54 字数 2969 浏览 4 评论 0原文

我使用 TextEditorField 进行轻松管理,希望它可以接收 HTML 并理解它只将文本显示为输出。

但它向我显示了这样的
标签:

Michel Delatour<br>0909090909<br>78 avenue des charlottes<br>89512 Tartiflette<br>AF

我的 crud 控制器部分与字段:

TextEditorField::new('delivery', 'Adresse de livraison')->onlyOnDetail()

交付部分:

 public function add(Cart $cart, Request $request): Response
    {


        $form = $this->createForm(OrderType::class, null, [
            'user' => $this->getUser()
        ]);

        $form->handleRequest($request);
        if ($form->isSubmitted() && $form->isValid()) {

            $date = new DateTimeImmutable();
            $carriers = $form->get('carriers')->getData();
            $delivery = $form->get('addresses')->getData();
            $deliveryContent = $delivery->getFirstname() . ' ' . $delivery->getLastname();
            $deliveryContent .= '<br>' . $delivery->getPhone();

            if ($delivery->getCompany()) {
                $deliveryContent .= '<br>' . $delivery->getCompany();
            }

            $deliveryContent .= '<br>' . $delivery->getAdress();
            $deliveryContent .= '<br>' . $delivery->getPostcode() . ' ' . $delivery->getCity();
            $deliveryContent .= '<br>' . $delivery->getCountry();

            $reference = $date->format('dmy') . '-' . uniqid();

            $order = new Order();
            $order->setReference($reference);;
            $order->setCreatedAt($date);
            $order->setUserRelation($this->getUser());
            $order->setCarrierName($carriers->getName());
            $order->setCarrierPrice($carriers->getPrice());
            $order->setDelivery($deliveryContent);
            $order->setState(0);

            $this->entityManager->persist($order);


            foreach ($cart->getFull() as $product) {
                $orderDetails = new OrderDetails();
                $orderDetails->setOrderRelation($order);
                $orderDetails->setProduct($product['product']->getName());
                $orderDetails->setQuantity($product['quantity']);
                $orderDetails->setPrice($product['product']->getPrice());
                $orderDetails->setTotal($product['product']->getPrice() * $product['quantity']);
                $this->entityManager->persist($orderDetails);
            }


            $this->entityManager->flush();



            return $this->render('order/add.html.twig', [
                'cart' => $cart->getFull(),
                'carrier' => $carriers,
                'delivery' => $deliveryContent,
                'reference' => $order->getReference()
            ]);
        }
        return $this->redirectToRoute('cart');
    }

I use a TextEditorField for Easy admin expecting that it could receive HTML and understand it to only show the text as outpout.

But it shows me <br> tags like this :

Michel Delatour<br>0909090909<br>78 avenue des charlottes<br>89512 Tartiflette<br>AF

my crud controller part with the field :

TextEditorField::new('delivery', 'Adresse de livraison')->onlyOnDetail()

the delivery part :

 public function add(Cart $cart, Request $request): Response
    {


        $form = $this->createForm(OrderType::class, null, [
            'user' => $this->getUser()
        ]);

        $form->handleRequest($request);
        if ($form->isSubmitted() && $form->isValid()) {

            $date = new DateTimeImmutable();
            $carriers = $form->get('carriers')->getData();
            $delivery = $form->get('addresses')->getData();
            $deliveryContent = $delivery->getFirstname() . ' ' . $delivery->getLastname();
            $deliveryContent .= '<br>' . $delivery->getPhone();

            if ($delivery->getCompany()) {
                $deliveryContent .= '<br>' . $delivery->getCompany();
            }

            $deliveryContent .= '<br>' . $delivery->getAdress();
            $deliveryContent .= '<br>' . $delivery->getPostcode() . ' ' . $delivery->getCity();
            $deliveryContent .= '<br>' . $delivery->getCountry();

            $reference = $date->format('dmy') . '-' . uniqid();

            $order = new Order();
            $order->setReference($reference);;
            $order->setCreatedAt($date);
            $order->setUserRelation($this->getUser());
            $order->setCarrierName($carriers->getName());
            $order->setCarrierPrice($carriers->getPrice());
            $order->setDelivery($deliveryContent);
            $order->setState(0);

            $this->entityManager->persist($order);


            foreach ($cart->getFull() as $product) {
                $orderDetails = new OrderDetails();
                $orderDetails->setOrderRelation($order);
                $orderDetails->setProduct($product['product']->getName());
                $orderDetails->setQuantity($product['quantity']);
                $orderDetails->setPrice($product['product']->getPrice());
                $orderDetails->setTotal($product['product']->getPrice() * $product['quantity']);
                $this->entityManager->persist($orderDetails);
            }


            $this->entityManager->flush();



            return $this->render('order/add.html.twig', [
                'cart' => $cart->getFull(),
                'carrier' => $carriers,
                'delivery' => $deliveryContent,
                'reference' => $order->getReference()
            ]);
        }
        return $this->redirectToRoute('cart');
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

贱贱哒 2025-01-22 05:31:54

你可以试试这个:

TextareaField::new('...')->renderAsHtml();

You can try this :

TextareaField::new('...')->renderAsHtml();
初熏 2025-01-22 05:31:54

您必须将 TextEditorField 更改为 TextField 并添加 renderAsHtml()。
这将是工作!

TextField::new('delivery', 'Adresse de livraison')->onlyOnDetail()->renderAsHtml()

ps:我在这里识别出来自“Apprendre Symfony 5 par la création d'un site e-commerce”的代码;)

You have to change TextEditorField by TextField and add renderAsHtml().
It will be work !

TextField::new('delivery', 'Adresse de livraison')->onlyOnDetail()->renderAsHtml()

p-s: I recognize here the code from "Apprendre Symfony 5 par la création d'un site e-commerce" ;)

你是年少的欢喜 2025-01-22 05:31:54

要解决此问题,您可以创建自定义模板来呈现内容。像这样:

#templates/admin/field/text_editor.html.twig

{# @var ea \EasyCorp\Bundle\EasyAdminBundle\Context\AdminContext #}
{# @var field \EasyCorp\Bundle\EasyAdminBundle\Dto\FieldDto #}
{# @var entity \EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto #}
{% if ea.crud.currentAction == 'detail' %}
    {{ field.value|raw }}
{% else %}
    {% set html_id = 'ea-text-editor-' ~ field.uniqueId %}
    <a href="#" data-bs-toggle="modal" data-bs-target="#{{ html_id }}">
        <i class="far fa-file-alt"></i> {{ 'field.text_editor.view_content'|trans([], domain = 'EasyAdminBundle') }}
    </a>

    <div class="modal fade" id="{{ html_id }}" tabindex="-1" role="dialog" aria-hidden="true">
        <div class="modal-dialog modal-lg" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title">{{ field.label }}</h5>
                    <button type="button" class="btn-close" data-bs-dismiss="modal"
                            aria-label="{{ 'action.close'|trans([], domain = 'EasyAdminBundle') }}">
                    </button>
                </div>
                <div class="modal-body">
                    {{ field.formattedValue|raw }}
                </div>
            </div>
        </div>
    </div>
{% endif %}

现在,您可以通过这样做来呈现内容

...
TextEditorField::new('delivery', 'Adresse de livraison')->setTemplatePath('admin/field/text_editor.html.twig')->onlyOnDetail(),

To solve this problem, you can create a custom template to render the content. Like this:

#templates/admin/field/text_editor.html.twig

{# @var ea \EasyCorp\Bundle\EasyAdminBundle\Context\AdminContext #}
{# @var field \EasyCorp\Bundle\EasyAdminBundle\Dto\FieldDto #}
{# @var entity \EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto #}
{% if ea.crud.currentAction == 'detail' %}
    {{ field.value|raw }}
{% else %}
    {% set html_id = 'ea-text-editor-' ~ field.uniqueId %}
    <a href="#" data-bs-toggle="modal" data-bs-target="#{{ html_id }}">
        <i class="far fa-file-alt"></i> {{ 'field.text_editor.view_content'|trans([], domain = 'EasyAdminBundle') }}
    </a>

    <div class="modal fade" id="{{ html_id }}" tabindex="-1" role="dialog" aria-hidden="true">
        <div class="modal-dialog modal-lg" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title">{{ field.label }}</h5>
                    <button type="button" class="btn-close" data-bs-dismiss="modal"
                            aria-label="{{ 'action.close'|trans([], domain = 'EasyAdminBundle') }}">
                    </button>
                </div>
                <div class="modal-body">
                    {{ field.formattedValue|raw }}
                </div>
            </div>
        </div>
    </div>
{% endif %}

Now, you can render the content by doing this

...
TextEditorField::new('delivery', 'Adresse de livraison')->setTemplatePath('admin/field/text_editor.html.twig')->onlyOnDetail(),
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文