我正在用Symfony 2.1製作一個客戶案例管理系統,而且我偶然發現了我無法解決的奇怪問題。出於某種原因,當我做的showAction與CustomerCaseController
,我得到以下錯誤:Symfony2類UserInterface不存在
"Class HSW\AshaBundle\Entity\UserInterface does not exist"
500 Internal Server Error
我不知道該應用程序的一部分,要求接口。 如果我創建一個空的UserInterface.php
課程,問題消失並且一切正常。爲什麼showAction
需要UserInterface
?
我已經縮小以某種方式涉及到這一塊的代碼在showController問題:
$customercase = $this->getDoctrine() ->getRepository('HSWAshaBundle:CustomerCase') ->find($id);
我有以下實體:
User
(用於登錄,提交例)Customer
(客戶)CustomerCase
(案例)。
的CustomerCase
有下列方式與Customer
和User
實體多對一關係:
// SRC/HSW/AshaBundle /實體/ CustomerCase.php 命名空間HSW \ AshaBundle \實體;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\Common\Collections\ArrayCollection;
/**
* CustomerCase
*
* @ORM\Table(name="hsw_customerCase")
* @ORM\Entity
* @Gedmo\Loggable
* @Gedmo\SoftDeleteable(fieldName="deletedAt")
*/
class CustomerCase
{
/**
* @ORM\ManyToOne(targetEntity="Customer", inversedBy="customerCases")
* @ORM\JoinColumn(name="customer_id", referencedColumnName="id", nullable=false)
*/
protected $customer;
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="createdCustomerCases")
* @ORM\JoinColumn(name="creator_id", referencedColumnName="id", nullable=false)
*/
protected $creator;
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="holdingCustomerCases")
* @ORM\JoinColumn(name="holder_id", referencedColumnName="id", nullable=false)
*/
protected $holder;
.....etc....
// SRC/HSW/AshaBundle /實體/ CustomerCase.php 命名空間HSW \ AshaBundle \實體;
use Symfony\Component\Security\Core\User\EquatableInterface;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\AdvancedUserInterface;
use Doctrine\Common\Collections\ArrayCollection;
/**
* HSW\AshaBundle\Entity\User
*
* @ORM\Table(name="hsw_users")
* @ORM\Entity(repositoryClass="HSW\AshaBundle\Entity\UserRepository")
*/
class User implements AdvancedUserInterface
{
.....etc....
與用戶實體的關係是否會影響到這個?這是我看到的CustomerCase.php
和3210(其中showAction
沒有UserInterface
)之間唯一可見的差異。
有人可以幫我調試這種行爲嗎?僅僅因爲Symfony需要是(出於未知原因)纔有空類UserInterface
。
您是否可以編輯您的文章並在CustomerCase和用戶實體中顯示您的名稱空間聲明和使用語句? – Mike
感謝邁克,我只是爲兩個實體添加了開始部分。我正在使用AdvancedUserInterface進行登錄(以允許使用電子郵件登錄)。難道這是造成這些問題的原因嗎? – user1903831