Knp paginator'u web serviste kullanmak istiyorum.

38 views
Skip to first unread message

Aziz ÇİFTÇİ

unread,
Mar 1, 2017, 4:48:44 PM3/1/17
to Symfony 2 Turkish Users

Knp paginator'u web serviste kullanmak istiyorum.Ancak json boş dönüyor. Nasıl bir düzenleme yapmalıyım?





public function listeleAction(Request $request)
{
//doctrini çağırdık
$em=$this->getDoctrine()->getManager();



//listelenecek bütün Yasam
$yasam_list=$em->getRepository("VanBundle:Yasam")->findAll();

if (count($yasam_list)>0)
{
$yanit=array();
foreach ($yasam_list as $meta)
{
$new_yasam=array();
$new_yasam['id']=$meta->getId();
$new_yasam['adi']=$meta->getAdi();
$new_yasam['adres']=$meta->getAdres();
$new_yasam['kategori_id']=$meta->getKategori()->getAdi();
array_push($yanit,$new_yasam);
}
$paginator=$this->get('knp_paginator');

$result= $paginator->paginate(
$yanit,
$request->query->getInt('page',1),
$request->query->getInt('limit',10)
);

}else{
$yanit["success"] = 0;
$response["message"] = "Bu kategoriye en kısa sürede veri eklenecektir. ";
}

$response=new Response(json_encode(array('yasamlar' =>$yanit),JSON_UNESCAPED_UNICODE));
$response->headers->set('Content-type','application/json; charset=utf-8');
$response->setStatusCode(200);
return $response;
}

Osman Üngür

unread,
Mar 1, 2017, 5:30:59 PM3/1/17
to symfon...@googlegroups.com
Merhaba,


KNP paginator maalesef rest api benzeri konularda size yardimci olmaz.

--

---
Bu iletiyi Google Grupları'ndaki "Symfony 2 Turkish Users" grubuna abone olduğunuz için aldınız.
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için symfony-2-tr...@googlegroups.com adresine e-posta gönderin.
Daha fazla seçenek için https://groups.google.com/d/optout adresini ziyaret edin.

Aziz ÇİFTÇİ

unread,
Mar 1, 2017, 5:52:26 PM3/1/17
to symfon...@googlegroups.com
Teşekkürler

2 Mart 2017 01:30 tarihinde Osman Üngür <osman...@gmail.com> yazdı:
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için symfony-2-tr+unsubscribe@googlegroups.com adresine e-posta gönderin.

Daha fazla seçenek için https://groups.google.com/d/optout adresini ziyaret edin.

--

---
Bu iletiyi Google Grupları'ndaki "Symfony 2 Turkish Users" grubunda bir konuya abone olduğunuz için aldınız.
Bu konunun aboneliğinden çıkmak için https://groups.google.com/d/topic/symfony-2-tr/HNma-ZCt0Gg/unsubscribe adresine gidin.
Bu grubun ve tüm konularının aboneliğinden çıkmak için symfony-2-tr+unsubscribe@googlegroups.com adresine e-posta gönderin.

Kaan Erkol

unread,
Mar 2, 2017, 12:53:58 AM3/2/17
to Symfony 2 Turkish Users
gayet yardımcı olabilir https://gist.github.com/skineur/980bfb6f436812a76b05 linki inceleyebilirsiniz https://github.com/willdurand/BazingaHateoasBundle bu bundle ile birlikte pagination linklerinide güzel bir şekilde halledebilirisiniz

Aziz ÇİFTÇİ

unread,
Mar 4, 2017, 12:25:33 PM3/4/17
to symfon...@googlegroups.com
Selamlar Kaan hocam.


public function indexAction(Request $request)
{
//doctrini çağırdık
$em=$this->getDoctrine()->getManager();
//listelenecek bütün Yasam
$yasam_list=$em->getRepository("VanBundle:Yasam")->findAll();

    $pager=$this->get('knp_paginator');
$paginated=$pager->paginate($yasam_list,$request->query->getInt('page',1),
        $request->query->getInt('limit',10));

    $factory=new KnpPaginatorFactory();
$collection=$factory->createRepresentation($paginated,new \Hateoas\Configuration\Route('yasamlar',array()));


return $collection;

}

Routing.yml: 
yasamjson_index:
path: /yasamjson/index
defaults: { _controller: VanBundle:YasamJson:index}

hata:

Catchable Fatal Error: Argument 1 passed to VanBundle\Factory\KnpPaginatorFactory::createRepresentation() must be an instance of Knp\Component\Pager\Pagination\SlidingPagination, instance of Knp\Bundle\PaginatorBundle\Pagination\SlidingPagination given, called in C:\xampp\htdocs\van_kent\src\VanBundle\Controller\YasamJsonController.php on line 33 and defined


33. $collection=$factory->createRepresentation($paginated,new \Hateoas\Configuration\Route('yasamlar',array()));



2 Mart 2017 08:53 tarihinde Kaan Erkol <ibrahimk...@gmail.com> yazdı:

--

---
Bu iletiyi Google Grupları'ndaki "Symfony 2 Turkish Users" grubunda bir konuya abone olduğunuz için aldınız.
Bu konunun aboneliğinden çıkmak için https://groups.google.com/d/topic/symfony-2-tr/HNma-ZCt0Gg/unsubscribe adresine gidin.
Bu grubun ve tüm konularının aboneliğinden çıkmak için symfony-2-tr+unsubscribe@googlegroups.com adresine e-posta gönderin.
Reply all
Reply to author
Forward
0 new messages