Kontroler wygląda tak:
function action_pokaz_nowosc($id,$title = null,$page = 1){ $this->template->content = new View("nowosc"); $publication = ORM::factory("publication",$id); $this->template->content->publication = $publication; //echo ORM::factory("comment")->where("publication_id","=",$id)->count_all(); $this->pagination = new Pagination( 'total_items' => 9, //ORM::factory("comment")->where("publication_id","=",$id)->count_all(), 'items_per_page' => 5)); $this->template->content->paginacja = $this->pagination;
Jak można się domyślić występuje relacja publication - comments.
W modelu ustawiam limit i offset dla komentarzy w taki sposób:
public function __construct() { parent::__construct(); $this->limit(5); if(Request::instance()->param('page')) // jesli jest podstrona komentarzy to $this->offset((Request::instance()->param('page')-1)*5); // obliczam offset }
I wszystko jest dobrze, ale teraz nie mogę zliczyć wszystkich komentarzy za pomocą ORM. Pozostaje je zliczyć bez ORM w dodatku pobieranie w kontrolerze jest złe, czy jest inne wyjście? Można ustalać limit i offset przy pobieraniu komentarzy (ORM::factory), ale tutaj pobieram publikacje, a komentarze są automatycznie dołączane, chyba, że mogę jakoś to ustalić aby pozbyć się sztywnego ustalania w modelu(np. przy relacji w modelu publications), ale nic takiego nie znalazłem.