Я новичок и пытаюсь написать запрос для ввода поиска, используя kpn_paginator
, но получаю сообщение об ошибке:
Один из слушателей должен подсчитать и разрезать заданную цель
Я не могу найти решение, я проверил некоторые другие топи c, но не могу понять, как это сделать в моем коде.
Мои остальные работают хорошо, но мои, если нет.
Когда я пытаюсь изменить свой запрос (-> getOneOrNullResult) на (-> getResult), я получаю следующую ошибку:
Возвращаемое значение App \ Repository \ ArticleRepository :: findByName () должно быть экземпляр App \ Entity \ Article или null, возвращается массив
Если вы можете мне помочь, большое спасибо.
index. html .twig
<div class="search">
<form action="" method="get" >
<input type="text" name="recherche" placeholder="Titre">
<button type="submit" class="btn btn-primary btn-sm">Recherche</button>
</form>
</div>
Контроллер. php
/**
* @Route("/", name="admin_article_index", methods={"GET"})
*/
public function index(ArticleRepository $articleRepository, PaginatorInterface $paginator, Request $request): Response
{
$this->articleRepository = $articleRepository;
$recherche = [];
if (isset($_GET['recherche'])) {
$recherche = htmlspecialchars($_GET['recherche']);
$article = $paginator->paginate(
$this->articleRepository->findByName($recherche),
$request->query->getInt('page', 1),
2
);
}else {
$article = $paginator->paginate(
$this->articleRepository->findAllArticleQuery(),
$request->query->getInt('page', 1),
2
);
}
return $this->render('admin/article/index.html.twig', [
'articles' => $article,
]);
}
Репозиторий статей. php
public function findByName($recherche): ?Article
{
return $this->createQueryBuilder('a')
->andWhere('a.title = :val')
->setParameter('val', $recherche)
->getQuery()
->getOneOrNullResult()
;
}