이것은 CI에서 페이지 매김을 시도한 첫 번째 시도이며, 라우팅으로 인한 문제가 있습니다.CodeIgniter - 라우팅 및 페이지 매기기
내 규칙은 다음과 같습니다 :
$route['User/(:num)/(:any)'] = 'User/index/$1';
$route['user/(:num)/(:any)'] = 'User/index/$1';
사람들은 http://site.com/index.php/user/1/tomek
과 같이 변환됩니다.
이제 내 매김 컨트롤러 :
public function getOwned($user,$limit,$start) {
$this->db->limit($limit,$start);
...
링크를 모두 잘 작동하지만, 그들은 작동하지 않습니다 내 모델에서
$config['base_url'] = site_url('user').'/'.$user.'/'.$data['user'][0]['nick'].'/';
$config['total_rows'] = $this->rating_model->countOwned($user);
$config['per_page'] = 2;
$config['enable_query_strings'] = true;
$this->pagination->initialize($config);
...
$data['owns'] = $this->rating_model->getOwned($data['user'][0]['id'],$config['total_rows'],$config['per_page']);
, 나는 간단한 limit
을 사용했다. http://site.com/index.php/user/1/tomek/2
과 같은 URL이 표시되지만 항목은 그대로 유지됩니다. 내 실수는 어디 갔지?
편집> 전체 컨트롤러 코드 :
public function index($user = null) {
$session_data = $this->session->userdata('user_data');
$this->db->cache_off();
if($session_data) :
$this->load->helper(array('form', 'url'));
$this->load->library('pagination');
$this->load->model('user_model');
$this->load->model('rating_model');
$this->load->model('games_model');
if($user) {
$user = $user;
} else {
$user = $session_data['id'];
}
//vars
$data['user'] = $this->user_model->getUser($user);
$data['title'] = $data['user'][0]['nick'].' · Profil użytkownika';
$data['age'] = $this->user_model->getAge($data['user'][0]['birth']);
$data['sex'] = $this->user_model->getSex($data['user'][0]['sex']);
$config['base_url'] = site_url('user').'/'.$user.'/'.$data['user'][0]['nick'].'/';
$config['total_rows'] = $this->rating_model->countOwned($user);
$config['per_page'] = 4;
$config['enable_query_strings'] = true;
$this->pagination->initialize($config);
$data['pages'] = $this->pagination->create_links();
$data['rates'] = $this->rating_model->countRates($user);
$data['rates2'] = $this->rating_model->countGrades($user);
$data['developers'] = $this->games_model->getDevelopers();
$data['genres'] = $this->games_model->getGenres();
$data['platforms'] = $this->games_model->getPlatforms();
$data['nowPlaying'] = $this->rating_model->getNowPlaying($data['user'][0]['id']);
$data['owns'] = $this->rating_model->getOwned($data['user'][0]['id'],$config['total_rows'],$config['per_page']);
//load
$this->template->load('template','theme/yourAccount/main', $data);
else :
$this->load->view('unlogged');
endif;
}
여기서 'uri-> 세그먼트'는 무엇입니까? –
네 번째 URI 세그먼트는 모델의'$ start'에 전달되어야합니다. 그런 일이 있습니까? 그렇다면 어떻게 지내십니까? –
그 네 번째 세그먼트를 전달하지 마십시오. 어떻게해야합니까? 나는 CI의 튜토리얼 (http://codeigniter.com/user_guide/libraries/pagination.html)을 따르고있다. –