Я новичок в Symfony2 и Doctrine, но немного программировал на PHP. У меня есть две таблицы:
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"
В этом конкретном запросе результат имеет только одну строку (у этого автора есть только одна цитата). Запрос делается с помощью WhiteOctober pagerfanta для удобной разбивки на страницы. Я передаю результат в ветку и отображаю кавычки
{% for data in pagerfanta.currentPageResults %}
<li>{{ data.quote }}</li>
{% endfor %}
В этом случае будет отображаться атрибут data.quote.
Вопрос: Как отобразить атрибуты данных из объединенной таблицы QuoteAuthor
? то есть authFirstName, authLastName
и т. д.
Я искал в Интернете, и я не могу найти никакого ответа. Кстати, если в приведенном выше операторе Twig я заменю data.quote
на data[‘quote’]
, он выдаст ошибку, что «Ключ 'quote' в объекте (с ArrayAccess) типа не существует».
Вся информация, которая мне нужна, находится в этом 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]
...
data.quote
должно работать. Однако ваш атрибутquote
является закрытым, так что у вас есть методgetQuote()
в вашей сущности? - person lifo   schedule 17.01.2013