如何访问学说简单查询"findall"结果



这是我的第一个"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;
}

最新更新