这是我的第一个"findall"简单查询。目的是随机选择1条记录,然后回显"reference"的值(BibleAnagrams表中的一个字段)。我使用PHP的array_rand进行随机选择。我需要帮助的是如何从结果arrany_rand()数组访问"reference"的值。
$Bible_anagram_reference = NULL;
/**
* @var AMDatabaseEntityTheVerseBibleAnagrams $result
*/
$result = $this->getDoctrineEntityManager()
->getRepository(get_class($this->getEntityBibleAnagrams()))
->findAll();
if (is_array($result) && count($result) > 0) {
/**
* @var AMDatabaseEntityTheVerseBibleAnagrams $value
*/
$value = array_rand($result, 1);
echo "Bible Ananagram: " . $result[$value]['reference'] . "rn";
exit;
}
随机选择的记录给出结果:
$result = Array
(
[0] => AMDatabaseEntityTheVerseBibleAnagrams Object
(
[reference:AMDatabaseEntityTheVerseBibleAnagrams:private] => 1
[languageIso:AMDatabaseEntityTheVerseBibleAnagrams:private] => en
[bibleAnagramWord:AMDatabaseEntityTheVerseBibleAnagrams:private] => Love
[word1:AMDatabaseEntityTheVerseBibleAnagrams:private] => Like
[word2:AMDatabaseEntityTheVerseBibleAnagrams:private] => Openness
[word3:AMDatabaseEntityTheVerseBibleAnagrams:private] => Venerate
[word4:AMDatabaseEntityTheVerseBibleAnagrams:private] => Enjoyment
)
);
当我使用
echo "Bible Ananagram: " . $result[$value]['reference'] . "rn";
我收到错误
PHP Fatal error: Cannot use object of type AMDatabaseEntityTheVerseBibleAnagrams as array
当我使用
echo "Bible Ananagram: " . $result[$value]->reference . "rn";
我收到错误
PHP Fatal error: Cannot access private property
如果有更多的细节,你需要帮助我,请建议这些是什么。非常感谢,Ron
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;
}