Фон
У меня есть OptionHelper
-Class, который ищет в таблице базы данных, где я храню некоторые гибкие параметры. Этот класс отлично работает в контроллерах.
Теперь я хочу использовать этот класс в функции другой службы, но он взрывается с указанным ниже сообщением об ошибке.
OptionHelper. php
namespace App\Service;
use App\Entity\Options;
use Doctrine\ORM\EntityManagerInterface;
class OptionHelper {
private $emi;
public function __construct(EntityManagerInterface $emi) {
$this->emi = $emi;
}
public function get(string $optionName) {
$repository = $this->emi->getRepository(Options::class);
$options = $repository->findOneBy([ 'optionname' => $optionName ]);
$value = $options->getOptionvalue();
return $value;
}
}
CartItem. php
namespace App\Service
class CartItem {
[...]
public function __construct($name, $number, $id) {
$this->name = $name;
$this->number = $number;
$this->id = $id;
}
[...]
private function getPrice(OptionHelper $optionHelper) { //<-- ERROR in this line
$price = $optionHelper->get('price');
return $price;
}
}
Контроллер
[...]
public function addItem($name, $number, $id) {
$cartItem = new CartItem($name, $number, $id);
}
Сообщение об ошибке
Too few arguments to function App\Service\CartItem::getPrice(), 0 passed in /src/Service/CartItem.php on line 89 and exactly 1 expected
Вопрос
Почему он не работает в другом Сервисе? Я попытался также поместить его в конструктор CartItem
-Class, но тоже не работает.
Нужно ли мне что-то добавлять в services.yaml
? Но я понятия не имею, как это сделать.
Заранее спасибо за любую помощь!