3

Symfony 2.1 で顧客ケース管理システムを作成していますが、解決できない奇妙な問題に遭遇しました。何らかの理由で で showAction を実行するとCustomerCaseController、次のエラーが発生します。

「クラス HSW\AshaBundle\Entity\UserInterface は存在しません」
500 内部サーバー エラー

アプリケーションのどの部分がそのインターフェースを必要としているかわかりません。空のUserInterface.phpクラスを作成すると、問題はなくなり、すべてが機能します。なぜshowAction必要なのUserInterfaceですか?

問題を絞り込んで、showController の次のコードに何らかの形で関連付けました。

$customercase = $this->getDoctrine() ->getRepository('HSWAshaBundle:CustomerCase') ->find($id);

次のエンティティがあります。

  • User(ログインおよびケース提出用)
  • Customer(お客様向け)
  • CustomerCase(ケース用)。

は、エンティティと次のようにCustomerCaseManyToOne 関係がCustomerあります。User

// src/HSW/AshaBundle/Entity/CustomerCase.php 名​​前空間 HSW\AshaBundle\Entity;

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/Entity/CustomerCase.php 名​​前空間 HSW\AshaBundle\Entity;

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....

User エンティティとの関係は、これに何らかの影響を与える可能性がありますか? CustomerCase.phpそれがとの間に見える唯一の目に見える違いですCustomer.php(showActionなしで動作する場所UserInterface)。

誰かがこの動作をデバッグするのを手伝ってくれますか?. UserInterfaceSymfony が (未知の理由で) 必要とするという理由だけで、空のクラスを持つことは本当に役に立たないようです。

4

1 に答える 1

0

UserInterfaceの名前空間をユーザークラスにインポートしなかったと思います(言及しなかったので、 User クラスだと思います):

use Symfony\Component\Security\Core\User\UserInterface;

class User implements UserInterface
{
}

公式ドキュメントの PHP 名前空間を読んでください。

于 2012-12-14T14:07:29.583 に答える