【问题标题】:show a list of users in symfony在 symfony 中显示用户列表
【发布时间】:2021-11-05 16:06:52
【问题描述】:

在我的 symfony 项目中,我有一个函数可以根据用户的“角色”显示用户列表 这是控制器代码

/**
* @Route("/admin", name="admin_index", methods={"GET"})
*/
public function index(): Response
{
    $Admins=$this->getDoctrine()->getRepository(User::class)->findBy(['roles' => array('["ROLE_ADMIN"]')]);

    return $this->render('back/admin/index.html.twig', [
        'admins' => $Admins,
    ]);
}

这是渲染

<table class="table" >
    <thead>
        <tr>
            <th>Id</th>
            <th>Nom</th>
            <th>Email</th>
            <th>Tel</th>
            <th>Photo</th>
        </tr>
    </thead>
    <tbody>
    {% for admin in admins %}
        <tr name="elements" id="{{ 'admin'~ admin.id}}">
            <td>{{ admin.id }}</td>
            <td>{{ admin.nom }}</td>
            <td>{{ admin.email }}</td>
            <td>{{ admin.tel }}</td>
            <td><a href="{{ asset('/Uploads/Images/' ~ admin.photo) }}">{{ admin.photo }}</a></td>
            <td>
            </td>
        </tr>
    {% else %}
        <tr>
            <td colspan="10">Rien a afficher</td>
        </tr>
    {% endfor %}
    </tbody>
</table>

这里的问题是,即使数据库已满,他也没有显示任何内容

这是实体声明

 /**
 * @var string
 *
 * @ORM\Column(name="roles", type="json")
 * @Groups ("post:read")

 */
private $roles;

这是表格结构的截图

enter image description here

我从早上开始就被困住了,我不知道为什么

【问题讨论】:

  • 您是如何开始发现问题的,您尝试了什么?

标签: php symfony doctrine twig symfony4


【解决方案1】:

由于角色字段是 json,因此您的 findBy 不会那样工作。

您应该在 UserRepository.php 类中创建一个函数,以使用 QueryBuilder 按角色选择用户

    public function findByRole($role)
    {
        return $this->createQueryBuilder('u')
            ->andWhere('u.roles LIKE :role')
            ->setParameter('role', "%{$role}%")
            ->getQuery()
            ->getResult();
    }

然后您可以从控制器调用该函数

$admins = $this->getDoctrine()->getRepository(User::class)->findByRole("ROLE_ADMIN");

我还建议您在控制器中使用 var_dump($admins); 来查看 Doctrine 是否首先向您返回任何内容。

您甚至可以在 twig {{ dump(admins) }} 中转储变量

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多