这是我的第一个" findall"简单查询。目的是随机选择1条记录,然后回显"参考" (BibleAnagrams表中的一个字段)。我使用PHP的array_rand进行随机选择。我需要帮助的是如何访问' reference'从生成的arrany_rand()数组。
$Bible_anagram_reference = NULL;
/**
* @var \AMDatabase\Entity\TheVerse\BibleAnagrams $result
*/
$result = $this->getDoctrineEntityManager()
->getRepository(get_class($this->getEntityBibleAnagrams()))
->findAll();
if (is_array($result) && count($result) > 0) {
/**
* @var \AMDatabase\Entity\TheVerse\BibleAnagrams $value
*/
$value = array_rand($result, 1);
echo "Bible Ananagram: " . $result[$value]['reference'] . "\r\n";
exit;
}
随机选择的记录给出结果:
$result = Array
(
[0] => AMDatabase\Entity\TheVerse\BibleAnagrams Object
(
[reference:AMDatabase\Entity\TheVerse\BibleAnagrams:private] => 1
[languageIso:AMDatabase\Entity\TheVerse\BibleAnagrams:private] => en
[bibleAnagramWord:AMDatabase\Entity\TheVerse\BibleAnagrams:private] => Love
[word1:AMDatabase\Entity\TheVerse\BibleAnagrams:private] => Like
[word2:AMDatabase\Entity\TheVerse\BibleAnagrams:private] => Openness
[word3:AMDatabase\Entity\TheVerse\BibleAnagrams:private] => Venerate
[word4:AMDatabase\Entity\TheVerse\BibleAnagrams:private] => Enjoyment
)
);
当我使用
时echo "Bible Ananagram: " . $result[$value]['reference'] . "\r\n";
我收到错误
PHP Fatal error: Cannot use object of type AMDatabase\Entity\TheVerse\BibleAnagrams as array
当我使用
时echo "Bible Ananagram: " . $result[$value]->reference . "\r\n";
我收到错误
PHP Fatal error: Cannot access private property
如果有更多细节需要帮助我,请告知这些是什么。非常感谢,Ron
答案 0 :(得分:1)
findAll()
函数返回的结果是一个Doctrine Entities数组。要访问结果中的值,您需要使用getter方法。循环结果并打印如下值:
$results = $this->getDoctrineEntityManager()
->getRepository(get_class($this->getEntityBibleAnagrams()))
->findAll();
foreach ($results as $result) {
echo $result->getLike()."<br />";
echo $result->getOpenness()."<br />";
echo $result->getVenerate()."<br />";
echo $result->getEnjoyment()."<br />";
}
要实现此目的,请确保您拥有getLike()
,getOpenness()
,getVenerate()
,getEnjoyment()
或实体中定义的任何其他返回所需参数的方法。 getOpenness()
函数的示例定义:
public function getOpenness()
{
return $this->Openness;
}