Symfony 4 AutoWire концерн в __contruct - PullRequest
0 голосов
/ 07 февраля 2019

Это мой очень простой класс в Symfony 4:

namespace App\Controller;

class T_contact
{
    public $email;
    public $name;
    /**
     * Constructor.
     *
     * @param string $email
     * @param string $name

     */
    public function __construct( $email, $name) {
        $this->email = $email;
        $this->name = $name;
    }

Но я всегда получаю: Невозможно автоматически подключить службу "App \ Controller \ T_contact": аргумент "$ email" метода "__construct ()" не имеет подсказки типа , вам следует явно настроить его значение.

Я пытался:" ...__ construct (string $ email, string $ name) ", но я получаю почтито же самое сообщение за исключением: "... - это" строка "с подсказкой типа , вам следует настроить ...

Я не понимаю. Любая подсказка приветствуется ...

1 Ответ

0 голосов
/ 08 февраля 2019

Вы не можете автоматически связывать строки, потому что Symfony не знает, какой из них ввести.Службы автоматически подключаются через их класс или интерфейс, который служит идентификатором, но с параметрами (int, строками и массивами) Symfony не может угадать, какие из них вы хотите внедрить.Вот почему вы получаете сообщение об ошибке ...you should configure its value explicitly.

Поэтому вам необходимо указать их вручную в своем services.yml

пример:

  App/Controller/T_contact:
      arguments:
          $email: 'your_email'
          $name: 'your_name'  

Дополнительное замечание: лучше всегоПрактика состоит в том, чтобы использовать CamelCase для вашего имени класса и, если оно является суффиксом контроллера, к нему добавляется термин Controller (т. е. TContactController)

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