我正在尝试在Symfony 4.4.1项目中将以作曲家身份安装的kayue/KayueWordpressBundle与composer 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,但是我做不到。这就是我想要的...
我的同事找到了解决方案。您必须像这样配置自动接线: