所以我在相册和用户之间有一个ManyToOne关系。 用户创建相册时,其user_id将插入相册表中。
我如何在控制器中进行搜索查询,该查询会将相册表中的user_id字段发送到树枝视图?这里的目标是仅显示与当前登录用户相关的相册。 (如您所见,我目前正在使用findAll()方法检索每张专辑。)
AlbumController.php:
/**
* @var AlbumRepository
*/
private $repository;
private $em;
/*Injection repository*/
public function __construct(AlbumRepository $repository, ObjectManager $em)
{
$this->repository = $repository;
$this->em = $em;
}
/**
* @Route("/admin", name="admin.album.index")
* @return \Symfony\Component\HttpFoundation\Response
*/
public function index()
{
$albums = $this->repository->findAll();
return $this->render('admin/album/index.html.twig', compact('albums'));
}
index.html.twig:
{% for album in albums %}
<tr>
<td>{{ album.title }}</td>
<td>
<a href="{{ path('admin.album.edit', {id: album.id}) }}" class="btn btn-secondary">Editer</a>
<form method="POST" action="{{ path('admin.album.delete', {id: album.id}) }}"style="display: inline-block"
onsubmit="return confirm('Voulez-vous vraiment supprimer cet album ?')">
<input type="hidden" name="_method" value="DELETE">
<input type="hidden" name="_token" value="{{ csrf_token(('delete' ~ album.id)) }}">
<button class="btn btn-danger">Supprimer</button>
</form>
</td>
</tr>
{% endfor %}
我真的希望我能清楚地描述我的问题,请注意我是一个初学者,所以我可能会错过一些东西。
非常感谢:)
答案 0 :(得分:0)
我想您的Album
实体具有用户属性。
您可以像这样通过用户获取相册:
$user = $this->getUser();
$albums = $this->repository->findBy([
'user' => $user // you can pass the user id or a user object
]);