0

テンプレート テキストをデータベース テーブルに保存したいと考えています。

Name     |    Text                         |  .....
----------------------------------------------------
Title    | My very own Blog                | ......
Intro    | Hello stranger, this is my blog |

各アイテムはレコードであり、Twig で各アイテムに直接アクセスしたいと考えています。

現在、私のコードは次のとおりです。

public function indexAction()
{
  $ObjArr=$EntityManager->getRepository('myBundle:tplitems')->findAll();

  foreach($ObjArr as $obj) {
    $tplitems[$obj-getName()]=$obj;
  }

  return $this->render('myBundle::index.html.twig',array('tplitems'=>$tplitems,))
}

これにより、Twig で次のように記述できます。

{{ tplitems.title.text }}

これを行うためのより良い/よりクリーンな方法はありますか?

4

1 に答える 1

1

を使用する代わりに独自のリポジトリ メソッドを作成しfindAll()、doctrine のインデックスを機能ごとに使用します。ドキュメントからの引用:

INDEX BY コンストラクトは、SQL に直接変換されるものではありませんが、オブジェクトと配列のハイドレーションに影響を与えます。各 FROM 句と JOIN 句の後に、結果でこのクラスのインデックスを作成するフィールドを指定します。デフォルトでは、結果は 0 から始まる数値キーによってインクリメントされます。ただし、INDEX BY を使用すると、他の列を結果のキーとして指定できますが、実際にはプライマリまたは一意のフィールドでのみ意味があります。

SELECT u.id, u.status, upper(u.name) nameUpper FROM User u INDEX BY u.id
JOIN u.phonenumbers p INDEX BY p.phonenumber
于 2013-09-16T08:59:16.063 に答える