4

データベースに接続された Symfony2 プロジェクトがあります。テーブルごとにエンティティがあります。

現在、ManyToOne を使用して、あるエンティティを別のエンティティに接続しようとしています。

問題は次のとおりです。

ユーザーと職場の 2 つのエンティティがあります。

ユーザーエンティティには、次のものがあります。

 /**
 * @ORM\ManyToOne(targetEntity="Workplace")
 * @ORM\JoinColumn(name="workplace", referencedColumnName="place")
 **/
protected $workplace;

/**
 * Set workplace
 *
 * @param integer $workplace
 */
public function setWorkplace($workplace)
{
    $this->workplace = $workplace;
}

/**
 * Get workplace
 *
 * @return integer 
 */
public function getWorkplace()
{
    return $this->workplace;
}

職場エンティティには次のものがあります。

/**
 * @ORM\Column(type="text")
 */
protected $place;



/**
 * Set place
 *
 * @param text $place
 */
public function setPlace($place)
{
    $this->place = $place;
}

/**
 * Get place
 *
 * @return text 
 */
public function getPlace()
{
    return $this->place;
}

それで、私は例外を得ています:

Neither property "workplace" nor method "getWorkplace()" nor method "isWorkplace()" exists in class "SciForum\Version2Bundle\Entity\Workplace" 

これはどのように解決できますか。どうもありがとうございました。

4

2 に答える 2

6

これを試して

->add('place','entity',  array('class'=>'yourBundle:WorkPlace',
                               'property'=>'place'))

フォームに入力します。

于 2012-10-12T07:08:37.843 に答える
5

@Asish APは正しいですが、説明がありません。

formBuilder で、2 つのエンティティ間に関係がある場合は、フォーム タイプで正しいエンティティを指定する必要があります。

->add(
    'place',
    'entity',  
        array(
            'class'=>'yourBundle:WorkPlace', //Link your entity
            'property'=>'place' //Specify the property name in the entity
))

存在しないプロパティを formBuilder で指定すると、次のエラーが発生します。

Neither property "workplace" nor method "getWorkplace()" nor method "isWorkplace()" exists in class "SciForum\Version2Bundle\Entity\Workplace"

それがあなたのエラーの理由と解決策の説明でした。

https://creativcoders.wordpress.com/2014/06/02/sf2-neither-the-property-nor-one-of-the-methods-exist-and-have-public-access-in-class/

于 2014-06-02T12:53:15.407 に答える