0
エンティティフィールドのプロパティをオーバーライドします。私は別のデータベーステーブル(IDによってマップされた)からデータを取得する必要があります。別のデータベーステーブルの "artikelnummer"と "name"というフィールドの組み合わせである必要があります。symfony 2エンティティフィールドのプロパティをオーバーライド
$builder->add('schlauch', 'entity', array(
'class' => 'SchlauchBundle:Artikelspezifikation',
'property' => 'artikelnummer',
'attr' => array(
'class' => 'extended-select'
),
'data_class' => null
));
フィールド「artikelnummerは」「12345」のようなものを出力しますが、私はそれが「12345 Articlename」のようになりますので、名前(「schlauch」と呼ばれる別のデータベーステーブルから)を追加する必要があります。エンティティファイルでクエリを試しましたが、どこでも出力を操作したくありません。
プロパティのクエリを使用して上書きすることはできますか?
class Artikelspezifikation
{
//…
/**
* @var Schlauch
*
* @ORM\ManyToOne(targetEntity="Schlauch", inversedBy="artikelspezifikations")
*/
private $schlauch;
//…
/**
* Get display name
*
* @return string
*/
public function getDisplayName()
{
return $this->artikelnummer . ' ' . $this->schlauch->getArtikelName();
}
//…
/**
* Set schlauch
*
* @param \SchlauchBundle\Entity\Schlauch $schlauch
*
* @return Artikelspezifikation
*/
public function setCategory(\SchlauchBundle\Entity\Schlauch $schlauch = null)
{
$this->schlauch = $schlauch;
return $this;
}
/**
* Get schlauch
*
* @return \SchlauchBundle\Entity\Schlauch
*/
public function getCategory()
{
return $this->schlauch;
}
}
そして、あなたのフォームクラスでちょうどプロパティを変更します:
は、迅速なあなたの答えのために、ありがとうございます。 "$ this-> schlauch"をオブジェクトとして取得するにはどうすればよいですか?私はIDだけを持っていた。 – ReAlPeNx
私はこれを試しましたが、オブジェクトだけでなくIDだけを返します。これまでArrayCollectionで何かしたことがありました。しかし、IDをデータベースに格納し、完全な関連エンティティが機能しないようにするだけです。コントローラではすべてを取得できますが、エンティティファイルでは問題があるようです。 – ReAlPeNx
[Doctrineのオブジェクト間の関連付け](http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/association-mapping.html)についての記事を読んでください。 – jkucharovic