не могу загрузить TranslatorInterface в моем formType - PullRequest
0 голосов
/ 11 декабря 2019

Я пытаюсь ввести какой-то перевод в ChatBundle, чтобы следить за изменениями _locale приложения хостинга в Symfony 4.

Так что в formBuilder я пытаюсь ввести TranslatorInterface как таковой:

// lib/ChatBundle/Form/ChatMessageType.php

namespace bornToBeAlive\ChatBundle\Form;

use bornToBeAlive\ChatBundle\Entity\ChatMessage;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Translation\TranslatorInterface;

class ChatMessageType extends AbstractType
{
    private $trans;

    public function __construct(TranslatorInterface $trans)
    {
        $this->trans = $trans;
    }

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('content', null, [
                'attr'=> ['placeholder' => $this->trans->trans('placeholder',[],'chat')]
            ])
        ;
    }

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

, но когда я пытаюсь выполнить мое show действие:

public function show(): Response
{
    $message = new ChatMessage();

    $form = $this->createForm(ChatMessageType::class, $message);

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

, я получаю следующую ошибку:

Слишком мало аргументов для функции bornToBeAlive \ ChatBundle \ Form \ ChatMessageType :: __ construct (), 0 передано в ../vendor/symfony/form/FormRegistry.php в строке 92 и ровно 1 ожидается

IЯ удивлен, потому что я использую эту технику, когда я в моем хост-приложении для другого типа. я сделал что-то не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...