私は Symfony2 と Doctrine にはまったく慣れていませんが、PHP でプログラミングを行いました。私は2つのテーブルを持っています:
Quotes:
id
quote
subject
auth_id
と
QuoteAuthor:
id
authorFirstName
authorLastName
authorLastNameFirstLetter
slug
私はクエリを実行しています:
"SELECT u, a FROM BetterLifeQuotesBundle:Quote u u.auth_id a WHERE a.id = 4"
この特定のクエリでは、結果には 1 つの行しかありません (この著者には 1 つの引用しかありません)。ページネーションを簡単にするために、クエリは WhiteOctober pagerfanta を使用して実行されます。結果を小枝に渡し、引用符を表示しています
{% for data in pagerfanta.currentPageResults %}
<li>{{ data.quote }}</li>
{% endfor %}
この場合、data.quote 属性が表示されます。
質問は次のとおりです。
結合されたテーブルからデータ属性を表示する方法はQuoteAuthor
? すなわちauthFirstName, authLastName
等。
Webで検索しましたが、答えが見つかりません。ところで、上記の Twig ステートメントを置き換えると、「タイプのオブジェクト (ArrayAccess を使用) にキー 'quote' が存在しません」というエラーが表示されますdata.quote
。data[‘quote’]
data
以下のダンプ情報でわかるように、私が必要とするすべての情報はその中にあります。
object(BetterLife\QuotesBundle\Entity\Quote)[760]
private 'id' => int 500
private 'quote' => string 'An archaeologist is the best husband a woman can have; the
older she gets, the more interested he is in her.' (length=108)
private 'subject' => string 'Men and Women' (length=13)
private 'auth_id' =>
object(BetterLife\QuotesBundle\Entity\QuoteAuthor)[758]
private 'id' => int 4
private 'authorFirstName' => string 'Agatha' (length=6)
private 'authorLastName' => string 'Christie' (length=8)
private 'authorLastNameFirstLetter' => string 'C' (length=1)
private 'slug' => string '' (length=0)
private 'quotes' =>
object(Doctrine\ORM\PersistentCollection)[753]
private 'snapshot' =>
array (size=0)
...
private 'owner' =>
&object(BetterLife\QuotesBundle\Entity\QuoteAuthor)[758]
private 'association' =>
array (size=15)
...
private 'em' =>
object(Doctrine\ORM\EntityManager)[345]
...
private 'backRefFieldName' => string 'quote_author' (length=12)
private 'typeClass' =>
object(Doctrine\ORM\Mapping\ClassMetadata)[816]
...
private 'isDirty' => boolean false
private 'initialized' => boolean false
private 'coll' =>
object(Doctrine\Common\Collections\ArrayCollection)[769]
...