Так у меня есть класс опрос со значением CreatedBy (идентификатор пользователя от лица, подавшего его), то контроллер, в котором перечислены все опросы в таблице опросаSymfony 3 - лучшая практика для поиска ID
public function indexAction()
{
$entityManager = $this->getDoctrine()->getManager();
$posts = $entityManager->getRepository(Poll::class)->findBy([], ['createdDate' => 'DESC']);
return $this->render('poll/admin/index.html.twig', ['posts' => $posts]);
}
Мой шаблон прут выглядит немного как это на momemt
<tbody>
{% for poll in posts %}
<tr id="poll_{{ poll.id }}">
<td> {{ poll.title }}</td>
<td>{{ poll.createdBy }}</td>
<td>etc</td>
<td>etc</td>
<td>etc</td>
</tr>
{% endfor %}
</tbody>
Если я хочу, чтобы отобразить фактическое имя пользователя вместо CreatedBy ID, что было бы наилучшей практикой? Я использую FOSUserBundle
есть отношение (от одного до многих, например) между вашим пользователем и классами опроса? если это так, вы можете использовать его непосредственно в шаблоне twig – wlalele
Нет, пользователи разделены и в основном обрабатываются fosuserbundle (у меня есть собственный класс пользователя с несколькими дополнительными переменными и событие, которое прослушивает назначение роли, когда они подтверждают свою электронную почту) Я знаю, что могу добавить функцию в свой класс опроса, но что-то в этом не так, особенно если у fosuserbundle есть findUserBy - я просто не уверен, как его использовать – p3tch
Чтобы использовать findUserBy, вам просто нужно пройти ваши аргументы следующим образом: $ user_manager = $ this-> get ('fos_user.user_manager'); $ my_user = $ user_manager-> findUserBy (массив ('id' => '123')); Но я бы установил связь между Пользователем и Опросом (http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/association-mapping.html), поскольку Пользователь является «submitter/contributor/участник» опроса И тогда, когда у вас есть многого рода или другого типа отношения, вам просто нужно вызвать ассоциацию, как вы ее создали: {{poll.submitter}} – wlalele