#php #symfony
#php #symfony
Вопрос:
Итак, у меня есть многоточечная связь между фотоальбомами и пользователем. Когда пользователь создает альбом, его user_id вставляется в таблицу album.
Как я могу сделать поисковый запрос в моем контроллере, который отправит поле user_id из моей таблицы album в мой twig view? Цель здесь — отображать только альбомы, связанные с текущим зарегистрированным пользователем. (Как вы можете видеть, в настоящее время я извлекаю каждый альбом с помощью метода 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 SymfonyComponentHttpFoundationResponse
*/
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 %}
Я действительно надеюсь, что я четко описал свою проблему, обратите внимание, что я начинающий разработчик, поэтому, возможно, я что-то пропустил.
большое вам спасибо 🙂
Ответ №1:
Я полагаю, что у вашего Album
объекта есть свойство user.
Вы можете извлекать альбомы по пользователю следующим образом :
$user = $this->getUser();
$albums = $this->repository->findBy([
'user' => $user // you can pass the user id or a user object
]);