私のデータベースには、ウサギとニンジンの2つのテーブルがあります。 ウサギは0個または複数のニンジンを持ち、ニンジンは1個のウサギに属します。これは、これらの2つのテーブル間の1とnの関係です。Symfony2 - エンティティのリポジトリ機能へのアクセス
私は、2つの実体、ウサギとニンジンを持っています。
私はテンプレートに合格したうさぎの配列を持っており、各ウサギから特定のニンジンを入手したいと思います。私は高価なニンジン10個を取得したいとしましょう(ニンジン価格はニンジンテーブルに保存されます)配列内の各$ウサギから。
何かのように:
{% for rabbit in rabbits %}
{% for carrot in rabbit.getMoreExpensiveCarrots %}
{{ carrot.price }}
{% endfor %}
{% endfor %}
私は、リポジトリのクラスを使用していますが、私はウサギのリポジトリクラス内の関数getMoreExpensiveCarrots($ウサギ)を作成した場合、私は、エンティティからその機能にアクセスすることはできません私が欲しいものであるようなクラス、:
$ウサギ - > getMoreExpensiveCarrots()
私はそれを行う方法は、ウサギのエンティティに)(getMoreExpensiveCarrotsを作成するだろうと考えた:
ここで// Entity rabbit
class Rabbit
{
public function getMoreExpensiveCarrots()
{
$this->getCarrots();
// Then try here to sort the carrots by their price, using php
return $carrots;
}
}
私のコントローラである:
public function indexAction()
{
$em = $this->getDoctrine()->getEntityManager();
$rabbits = $em->getRepository('AppNameBundle:Rabbit')->getSomeRabbits();
return $this->render('AppNameBundle:Home:index.html.twig',
array(
"rabbits"=>$rabbits
));
}
テンプレート内の各ウサギからgetMoreExpensiveCarrots関数を呼び出すためのベストプラクティスは何?私は、私はあまりにもがそれを行うことができると思った
// Entity rabbit
class Rabbit
{
public function getMoreExpensiveCarrots()
{
// Access repository functions like getMoreExpensiveCarrots($rabbit)
// But how can I do such thing ? Isn't that bad practise ?
return $carrots;
}
}
ありがとうございます!
私はこのウサギとニンジンのものが大好きです。<3 –