在我的symfony專案中,我有一個功能,根據用戶的 "角色 "顯示一個用戶串列。 下面是控制器的代碼
/**.
* @Route("/admin", name="admin_index", methods={"GET"})
*/
public function index()。Response
{
$Admins=$this->getDoctrine()->getRepository(User:: class)->findBy([' roles' => array('["ROLLE_ADMIN"] ')]。
return $this->render('back/admin/index.html', [
'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"/span>>Rien a afficher</td>
</tr>
{% endfor %}}
</tbody>
</table>
這里的問題是,即使資料庫是滿的,他也沒有顯示任何東西
。這里是物體宣告
/**.
* @var string
*
* @ORMColumn(name=" roles", type="json")
* @Groups ("post:read")
*/
private $roles;
這里是表結構的截圖
在此輸入圖片描述我從早上開始就被卡住了,我不知道為什么
。uj5u.com熱心網友回復:
由于角色欄位是json,你的findBy不會以這種方式作業。
。你應該在你的UserRepository.php類中創建一個函式,使用QueryBuilder按角色選擇用戶
public function findByRole(span class="hljs-variable">$role)
{
return $this->createQueryBuilder('u'/span>)
->andWhere('u.roods LIKE :role')
->setParameter('role', "%{$role}%")
->getQuery()
->getResult()。
}
然后你可以從你的控制器中呼叫該函式
$admins = $this->getDoctrine()->getRepository(User: :class)->findByRole("ROLLE_ADMIN") 。
我還建議你在控制器中利用var_dump($admins);來查看Doctrine是否首先向你回傳了什么。
你甚至可以在twig中轉儲變數 {{ dump(admins) }}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/310767.html
標籤:
上一篇:在Sparkrepartition(1)和coalesce(1)之間的差異
下一篇:引數必須是陣列型別,給出字串,在doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php中呼叫Annotations/Doc
