【发布时间】:2015-01-30 02:49:03
【问题描述】:
有我的实体:
实体
namespace Catalog\WebBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
class ComCompany
{
private $entityManager;
public function setEntityManager(EntityManager $entityManager)
{
$this->entityManager = $entityManager;
}
public function getCmpCategory()
{
return $customer = $this
->entityManager
->getRepository('CatalogWebBundle:ComCategory')
->findOneBycmpCat('123123');
}
}
Services.yml
services:
catalog_web.comcompany:
class: Catalog\WebBundle\Entity\ComCompany
calls:
- [ setEntityManager, [ @doctrine.orm.entity_manager ]]
我收到错误:
InvalidArgumentException:没有扩展能够加载“catalog_web.comcompany”的配置(在 /home/katalogas/domains/ekatalogas.eu/public_html/src/Catalog/WebBundle/DependencyInjection/../Resources /config/services.yml)。寻找命名空间“catalog_web.comcompany”,没有找到
我不明白 services.yml 配置文件中有什么问题。
【问题讨论】:
-
请注意你做错了。实体只是实体的定义,没有逻辑。这个
getCmpCategory方法应该放在 RepositoryClass - symfony.com/doc/current/book/… -
是的。将实体定义为服务是没有意义的。 Doctrine 2 对服务容器一无所知。虽然错误信息令人费解。
标签: php symfony doctrine-orm doctrine