Я пытаюсь ввести какой-то перевод в 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Я удивлен, потому что я использую эту технику, когда я в моем хост-приложении для другого типа. я сделал что-то не так?