带有SYmfony 4.4.1的Kayue \ WordpressBundle:在已配置链的命名空间App \ Entity中找不到类XXX

问题描述 投票:0回答:1

我正在尝试在Symfony 4.4.1项目中将以作曲家身份安装的kayue/KayueWordpressBundlecomposer require kayue/kayue-wordpress-bundle一起使用,但无法执行。

这是我想要做的:

<?php

namespace App\Service\WordPress;

use Doctrine\ORM\EntityManagerInterface;
use Kayue\WordpressBundle\Entity\Post;

class PostCollection
{
    protected $postRepository;

    public function __construct(EntityManagerInterface $entityManager)
    {
        $this->postRepository = $entityManager->getRepository(Post::class);
    }
}

我得到的错误:

The class 'Kayue\WordpressBundle\Entity\Post' was not found in the chain configured namespaces App\Entity

[At first I blamed my dual-database configuration(Symfony与Wordpress在不同的数据库上),但是随后我将数据库放在一起,问题仍然存在:

doctrine:
    dbal:
        url: '%env(resolve:DATABASE_URL)%'

        # Only needed for MySQL (ignored otherwise)
        charset: utf8mb4
        default_table_options:
            collate: utf8mb4_unicode_ci
    orm:
        auto_generate_proxy_classes: true
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true
        mappings:
            App:
                is_bundle: false
                type: annotation
                dir: '%kernel.project_dir%/src/Entity'
                prefix: 'App\Entity'
                alias: App

我过去2个小时一直在摆弄,但现在我没有新主意了。我想知道是否有人真的可以使用Symfony 4。

谢谢!

编辑:其他尝试:

直接后期注入:

use Kayue\WordpressBundle\Entity\Post;
public function index(Post $post){}

结果:

无法自动装配“ App \ Controller \ IndexController :: index()”的参数$ post:它引用类“ Kayue \ WordpressBundle \ Entity \ Post”,但不存在此类服务。

根据文档:过时的Symfony 2方式

$repo = $this->get('kayue_wordpress')->getManager()->getRepository('KayueWordpressBundle:Post');

结果:

找不到服务“ kayue_wordpress”:即使它存在于应用程序的容器中,“ App \ Controller \ IndexController”内的容器也是一个较小的服务定位器,仅了解“ doctrine”,“ form.factory”, “ http_kernel”,“ parameter_bag”,“ request_stack”,“ router”,“ security.authorization_checker”,“ security.csrf.token_manager”,“ security.token_storage”,“ serializer”,“ session”和“ twig”服务。尝试改用依赖项注入。

“最佳方法”实际上是:

    public function index(EntityManagerInterface $entityManager)
    {
$entityManager->getRepository('KayueWordpressBundle:Post');
}

结果:

在链配置的命名空间App \ Entity中找不到类'Kayue \ WordpressBundle \ Entity \ Post'。

我正在尝试与随作曲者一起安装的kayue / KayueWordpressBundle一起工作,因为作曲者需要在我的Symfony 4.4.1项目中使用kayue / kayue-wordpress-bundle,但是我做不到。这就是我想要的...

symfony doctrine-orm doctrine symfony4 entitymanager
1个回答
0
投票

我的同事找到了解决方案。您必须像这样配置自动接线:

© www.soinside.com 2019 - 2024. All rights reserved.