0

私のモデルでは:

 * @method Doctrine_Collection getComments() Returns the current record's "Comments" collection

デフォルトで管理者を生成した場合、これはリストに表示されません。がgenerator.ymlにある場合:

config:
  actions: ~
  fields:  ~
  list:    
    display: [id, title, comments]
  filter:  ~
  form:    ~
  edit:    ~
  new:     ~

それからこれは私に見せて

<pre> Doctrine_Collection data : Array( ) </pre>

コメントのリストの代わりに。

私は知っています-私はキャッシュからファイルを取得してこれを表示することができますが、おそらくこれはgenerator.ymlでのみ可能ですか?たとえば、私が1対多の関係を持っている場合、これは私にこの名前を示しています。

これにキャッシュを使いたくない!ありがとう!

4

2 に答える 2

1

問題に対応する関数を使用できます。

たとえば、私のgenerator.yml

  list:    
    display: [id, description, public, nbQuestions]

nbQuestionsはの関数ですObject.class.php

public function getNbQuestions() {
    return $this->getQuestion()->count();
}

管理ジェネレーターは、オブジェクトクラスの「getYouField」メソッドを自動的に呼び出します。したがって、ドクトリンコレクションの長い文字列を返す関数を記述できます。

于 2012-06-11T10:57:49.663 に答える
1

カウントを表示する以外の方法があります。

generator.ymlにパーシャルを追加できます。

  list:
    display: [id, description, public, _comments]

次に、パーシャル(_comments.php)で、リレーションを呼び出して、必要なものを表示できます(スタイル、その他の情報などを追加します)。

<?php
  // note that you will need to change the $object
  echo $object->getComments()->count();
?>

別の方法では、すべてのコメントを編集ビューにリストすることが役立つ場合があります。generator.yml内:

  form:
    # don't forget to add others fields
    display: [_comments]

そして、あなたの部分で:

<ul>
  <?php foreach($form->getObject()->getComments() as $comment): ?>
    <li><?php echo $comment->getBody() ?></li>
  <?php endforeach; ?>
</ul>

また、両方を同じ部分に結合する場合(名前を変更することを忘れないでください$object):

<?php if(isset($form)): ?>

  <ul>
    <?php foreach($form->getObject()->getComments() as $comment): ?>
      <li><?php echo $comment->getBody() ?></li>
    <?php endforeach; ?>
  </ul>

<?php elseif(isset($object)): ?>

  <?php
    // note that you will need to change the $object
    echo $object->getComments()->count();
  ?>

<?php endif; ?>
于 2012-06-11T11:51:13.083 に答える