Я использую Knp paginator в проекте symfony 2.3, и этот проект для меня новый, поэтому использование контроллеров немного странно.
Я пытаюсь установить его, но есть вещи, которые все еще мешают его функционированию.
Я слежу за этим учебник на самом деле
и вот мой код в моем контроллере
private function resultsAction(Request $request, User $user, $type, $archive)
{
$em = $this->getDoctrine()->getManager();
$results = $em->getRepository("randomRepo")->findByTypeAndPro($type, $user, $archive);
/**
* @var $paginator \Knp\Component\Pager\Paginator
*/
$paginator = $this->get('knp_paginator');
$results = $paginator->paginate(
$results,
$request->query->getInt('page',1),
$request->query->getInt('limit',5)
);return array("results" => $results, "archive" => $archive);
}
public function offerAction(User $user, $archive = false)
{
return $this->resultsAction($user, Operation::OFFER, $archive);
}
Мое пространство имен и класс, используя:
namespace ST\BackofficeBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use ST\UserBundle\Entity\Operation;
use ST\UserBundle\Entity\User;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
И поэтому, когда я пытаюсь загрузить свою страницу, я получаю эту ошибку:
Вы забыли добавить аргумент Request в вызов ResultsAction.
Декларация содержит 4 аргумента:
resultsAction(Request $request, User $user, $type, $archive)
Звонок содержит 3:
public function offerAction(User $user, $archive = false)
{
return $this->resultsAction($user, Operation::OFFER, $archive);
}
Вы должны передать класс Request, когда вызываете action:
public function offerAction(Request $request, User $user, $archive = false)
{
return $this->resultsAction($request, $user, Operation::OFFER, $archive);
}