在我的模特中我有:
* @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 ? 例如,如果我有一对多的关系,那么这显示了我的名字。
我不想为此使用缓存! 谢谢!
答案 0 :(得分:1)
您可以使用函数解决问题。
例如,在我的generator.yml
list:
display: [id, description, public, nbQuestions]
nbQuestions是Object.class.php
public function getNbQuestions() {
return $this->getQuestion()->count();
}
管理生成器将自动调用对象类中的“getYouField”方法。因此,您可以描述一个为您的学说集合返回长字符串的函数。
答案 1 :(得分: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; ?>