Symfony2获取集合方法

时间:2014-04-07 14:23:13

标签: php symfony doctrine-orm

我想在集合上使用get-method - 但它不起作用。

$user = $this->getUser(); // Single User object -> all fine!
$abc = $user->getABC(); // getABC is a collection of multiple objects -> still fine!
$random = $abc->getRandom(); // method getRandom not working on collection -> ERROR Call to undefined method Doctrine\ORM\PersistentCollection::getRandom()

我尝试使用foreach循环,但我没有设法让它工作。

有没有办法告诉symfony2在这个集合的每个对象上使用getRandom方法?

最后,我想要一个由我的用户制作的所有条目的列表。 如果您需要更多信息 - >评论! =)

问候

2 个答案:

答案 0 :(得分:0)

为什么不使用:

$random = $abc->get(rand(0, $abc->count() - 1));

参考: http://www.doctrine-project.org/api/common/2.3/class-Doctrine.Common.Collections.ArrayCollection.html

答案 1 :(得分:0)

foreach ($abc as $rand) {
    $random = $rand->getRandom();
}

只是简单地循环所有元素。这是可能的,因为ArrayCollection实现了IteratorAggregate接口。请参阅PHP Docs