【发布时间】:2019-02-11 15:58:09
【问题描述】:
找不到服务“sylius.repository.product”:即使它存在于应用程序的容器中,“App\Controller\Shop\SubscribeBoxController”内的容器是一个较小的服务定位器,只知道“学说”,“ form.factory”、“http_kernel”、“parameter_bag”、“request_stack”、“router”、“security.authorization_checker”、“security.csrf.token_manager”、“security.token_storage”、“serializer”、“session”、“模板”和“树枝”服务。尝试使用依赖注入。
当我尝试在我的控制器上使用 sylius 服务时出现此错误:
public function index(Request $request)
{
$subscribed = new Subscribed();
$subscribeForm = $this->createForm(SubscribeType::class, $subscribed);
$subscribeForm->handleRequest($request);
if ($subscribeForm->isSubmitted() && $subscribeForm->isValid()) {
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($subscribed);
$entityManager->flush();
return $this->redirectToRoute('subscribe_details');
}
/** @var ProductRepository $productRepository */
$productRepository = $this->get('sylius.repository.product');
$product = $productRepository->findAll();
return $this->render('@SyliusShop/Subscribe/plan.html.twig', [
'form' => $subscribeForm->createView(),
'product' => $product,
]);
}
所以如果有人知道这个错误,请告诉我! :)
【问题讨论】:
-
你试过用依赖注入代替吗?
-
是的,但我有这个新错误:
-
无法自动装配“App\Controller\Shop\SubscribeBoxController::details()”的参数 $productRepository:它引用了类“Sylius\Bundle\ProductBundle\Doctrine\ORM\ProductRepository”,但不存在此类服务.您可能应该将此类别名为以下现有服务之一:“sylius.repository.product”、“App\Repository\ProductRepository”。
-
那么,如果您开始使用自动装配,您为自定义应用程序代码配置了什么?
-
我找不到我应该配置什么...