У меня есть следующий запрос:
function indexAction()
{
$u = $this->getDoctrine()->getRepository("AppBundle:Users")->findAll( \Doctrine\ORM\AbstractQuery::HYDRATE_ARRAY );
return $this->render("default/test.html.twig", ["users" => $u]);
}
И я прокручиваю его в Twig Template с помощью этого цикла:
{% for item in users %}
<li>{{ item.email }} : </li>
{% endfor %}
И я столкнулся с этой ошибкой:
Impossible to access a key "name" on an object of class "AppBundle\Entity\Users" that does not implement ArrayAccess interface in default/test.html.twig at line
Что-то не так. Вы передаете переменную users
шаблон, но вы используете myItems
в цикле for
.
Попробуй это:
{% for item in users %}
{{ dump(item) }}<br />
{% endfor %}
Ваш класс реализует ArrayAccess в определении вашей сущности?
class Foo implements ArrayAccess
Для этого вам нужно будет добавить несколько методов в свой класс:
Для реализации ArrayAccess вам необходимо реализовать четыре метода: offsetExists, offsetGet, offsetSet и offsetUnset. ArrayAccess :: offsetExists должны возвращать логическое значение, offsetGet может возвращать любой допустимый тип PHP, а offsetSet и offsetUnset не должны возвращать какое-либо значение. После реализации этих методов вы можете обрабатывать объект, как если бы он был массивом для сохранения и извлечения свойств
Подробнее здесь.