ошибка нумерации страниц - PullRequest
2 голосов
/ 02 марта 2012

У меня есть Admin контроллер в codeigniter

class Admin extends CI_Controller {

function __construct() {

    parent::__construct();

    if (!$this->tank_auth->is_logged_in()) redirect('login');
    $this->load->library('pagination');

}

function index() {

    $offset = $this->uri->segment(2);
    $config['per_page'] = 3;
    $data['sitetitle'] = 'Výpis jobů';
    $data['listings'] = $this->Jobs_model->get_listings(0,$user_id = FALSE,$config['per_page'],$offset);
    $config['uri_segment'] = 2; 
    $config['base_url']     = base_url().'admin/';
    $config['total_rows']   = $this->db->count_all_results('jobs');


    $this->pagination->initialize($config);

    $this->template->set('title', 'Domovská stránka');
    $this->template->load('template', 'site', $data);
}

}

и Jobs_model

function get_listings($category, $user_id = false, $limit = 0, $offset = 0) {

    $data = array();

    $this->db->order_by('id', 'desc');
    $q = $this->db->get('jobs');

    if ($category) {
        $options = array('category' => $category);
        $this->db->order_by('id', 'desc');
        $this->db->where('category', $category);
        $q = $this->db->get('jobs', $limit, $offset);
    }
    else {
        $query = $this->db->order_by('id', 'desc');
        if ($user_id) $query = $query->where('user_id', $user_id);
        $q = $query->get('jobs',$limit, $offset);
    }

    if ($q->num_rows() > 0) {
        foreach ($q->result_array() as $row) {
            $data[] = $row;
        }
    }

    $q->free_result();
    return $data;
}

первая страница в paginatiom получить данные, но ссылки генерируются в pagination localhost /sitename / admin / 3 выдает ошибку 404.Где проблема в моем сценарии

Ответы [ 3 ]

4 голосов
/ 02 марта 2012

Вам нужно изменить:

$config['base_url'] = base_url().'admin/';

Кому:

$config['base_url'] = base_url().'admin/index/';

Если вам нужно , чтобы URL был похож на admin/3, вы можете использовать route или _remap.

Примечание: рассмотрите возможность использования этого для получения номера страницы, а не класса URI:

function index($offset = 0) {
    // your code
}

Это будет делать то же самое, но по возможности удобно использовать аргументы метода контроллера.

1 голос
/ 02 марта 2012

Вы должны сделать некоторые изменения.

$config['base_url']=base_url().'admin/index';

изменение

$config['uri_segment'] = 3; 

проверьте, используете ли вы .htaccess или нет. Если нет, то $ config ['base_url'] выше должно быть

$config['base_url']=base_url().'index.php/admin/index';
0 голосов
/ 22 мая 2014

Если вы получаете ошибку 404 при разбивке кодигнита, пожалуйста, проверьте следующее:

1) Проверьте ваш контроллер, это индекс или что-то еще, если это индекс, тогда base_url должен быть:

base_url().'admin/index/pages' и если это что-то еще, то должно быть:

base_url().'admin/somethingelse/pages'

2) Проверьте 'uri_segment' с помощью $this->uri->segment(4), чтобы вы получили номер страницы, а затем выполните кодиагнитор.

...