programing

Dectrine에 액세스하는 방법 단순 쿼리 "모든 결과 찾기"

oldcodes 2023. 9. 21. 21:14
반응형

Dectrine에 액세스하는 방법 단순 쿼리 "모든 결과 찾기"

이것은 제 첫번째 "모두 찾기" 간단한 질문입니다.목적은 레코드 하나를 임의로 선택한 다음 "참조" 값(바이블 애너그램 테이블의 필드)을 반향하는 것입니다.저는 무작위 선택을 위해 PHP의 array_rand를 사용하고 있습니다.도움이 필요한 것은 결과 arrany_rand() 배열에서 'reference' 값에 접근하는 방법입니다.

$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

저를 도와주셔야 할 더 자세한 사항이 있으시면 조언 부탁드립니다.고마워요, 론

결과는 다음과 같이 반환됩니다.findAll()함수는 독트린 엔티티의 배열입니다.결과의 값에 액세스하려면 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;
}

언급URL : https://stackoverflow.com/questions/24472572/how-to-access-doctrine-simple-query-findall-results

반응형