У меня проблема с командой консоли в Symfony 5. Я пытаюсь передать один параметр в команду конструктора ( TerytWMRODZRepository $ terytwmrodzrepo ), потому что я хочу соединиться с базой данных и выполнить c запросы. Один из способов сделать это - создать репозиторий для объекта, и я сделал это. Но когда я помещаю параметр в команду конструктора , у меня возникает ошибка. Ниже код этой команды консоли:
# src/Command/GetNewDataTerytCommand.php
# ...
<?php
namespace App\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Httpfoundation\Response;
use App\TERYT_SoapClient;
use App\Service\DB\TerytDB;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Console\Command\LockableTrait;
use App\Repository\TerytWMRODZRepository;
class GetNewDataTerytCommand extends Command
{
protected static $wsdl = 'https://uslugaterytws1test.stat.gov.pl/wsdl/terytws1.wsdl';
private $terytwmrodzrepo;
protected static $defaultName = 'teryt:get';
public function __construct(TerytWMRODZRepository $terytwmrodzrepo){
$this->terytwmrodzrepo= $terytwmrodzrepo;
parent::__construct();
}
...
}
Когда я использую команду консоли в терминале: 'php bin / console teryt: get' , я получаю вывод как:
ArgumentCountError {# 67
#message: "Too few arguments to function App\Command\GetNewDataTerytCommand::__construct(), 0 passed in /var/www/html/umowy_uzytkownicy/bin/console on line 43 and exactly 1 expected"<br />
#code: 0<br />
#file: "./src/Command/GetNewDataTerytCommand.php"<br />
#line: 27<br />
trace: {<br />
./src/Command/GetNewDataTerytCommand.php:27 {<br />
App\Command\GetNewDataTerytCommand->__construct(TerytWMRODZRepository $terytwmrodzrepo)<br />
› <br />
› public function __construct(TerytWMRODZRepository $terytwmrodzrepo){<br />
› <br />
}<br />
./bin/console:43 { …}<br />
}<br />
}<br /><br />
Я пытался найти решение в документации Symfony 5 по URL: https://symfony.com/doc/current/console/commands_as_services.html и на других страницах, таких как: https://ourcodeworld.com/articles/read/1131/how-to-access-the-entity-manager-doctrine-inside-a-command-in-symfony-5 но ничего не работает. Я попытался в config / service.yaml настроить команды консоли как службу, но ничего не изменилось:
# config/services.yaml
# ...
services:
...
App\Command\GetNewDataTerytCommand:
public: true
tags:
- { name: 'console.command', command: 'teryt:get'}
PS: Я прошу прощения за мой Engli sh. Это мой первый вопрос в StackOverFlow.
Большое спасибо