нумерация страниц не работает должным образом в codeigniter 2.1.0 с url_suffix - PullRequest
4 голосов
/ 30 января 2012

Я использую codeigniter 2.1.0 и базу данных mysql.в моей админ-панели у меня есть страница, где я хочу показать всех пользователей с разбивкой на страницы.Но это не работает.после многих попытоквот мой обновленный кодконтроллер:

function accounts() // controller to view all users
{
    $this -> load -> library('pagination');
    $config['base_url'] = site_url('admin/home/accounts/');
    $config['total_rows'] = $this->db->get('user')->num_rows();
    $config['per_page'] = 2;
    $config['num_links'] = 2;
    $config['full_tag_open'] = '<p id="pagination">';
    $config['full_tag_close'] = '</p>';
    $offset = $this->uri->segment(4,0);
    $this->pagination->initialize($config);
    $this->load->model('admin_model');
    $data['user_data']=$this->admin_model->all_user($config['per_page'],$offset);
    $data['links']=$this -> pagination -> create_links();
    $data['main_content']='admin/accounts';
    $this->load->view('includes/admin/admin_template',$data);
}

вид:

<?php foreach ($user_data as $data) {?>
<?php echo 'Name:' . ' ' ?>
<?php echo ($data['name']).'<br/>'; ?>
<?php echo 'E-mail:' . ' ' ?>
<?php echo ($data['email']).'<br/>'; ?>
<br />
<?php } ?>
<?php echo $links;?>

модель:

function all_user($per_page,$offset) //shows all uer info
{
    $query = $this->db->get('user', $per_page, $offset);
    $row=$query->result_array();
    return $row;
}

а вот и маршрут:

$route['default_controller'] = "site";
$route['404_override'] = '';
$route['admin']='admin/admin';

Я использовал .htaccess mod_rewrite, чтобы удалить мой index.php, и $ config ['url_suffix'] = '. Html', чтобы добавить суффикс .html, который заставляет URL выглядеть так'http://localhost/project/admin/home/accounts.html'вместо'http://localhost/project/index.php/admin/home/accounts'но если я удалю url_suffix в моем config.php

*/

$config['url_suffix'] = '';

/*

нумерация страниц работает отлично.но я хочу использовать url_suffix

*/

$config['url_suffix'] = '.html';

/*

, но если я это сделаю, разбиение на страницы не работает, и показывает 404 страница не найдена ошибка.как я могу решить эту проблему?

Ответы [ 3 ]

5 голосов
/ 30 января 2012

Я вижу много проблем в вашем коде. Но 1-е, 1-е.

Помещенный

$this->uri->segment(4)

в вашем запросе в смещении.

Обновление: если вы еще не сделали mod_rewrite, добавьте 'index.php' к вашему $config['base_url'].

например. $config['base_url']=base_url().'index.php/admin/....';

добавьте свой путь в коде выше.

3 голосов
/ 31 января 2012

$config['base_url'] = site_url('admin/home/accounts');

в этой строке вам нужен обратный слэш в конце, как

$config['base_url'] = site_url('admin/home/accounts/');

Обновление

добавьте это к своему контроллеру по-своему

$data['links']=$this->pagination->create_links();

Обновление Сумасшедшая идея, хотя я знаю меньше о codeigniter.

Переключение между вашей моделью и контроллером.Вы уверены, что контроллер в вашем коде называется контроллером?тот же квест для модели.

Обновление Мои извинения, ваш базовый URL должен быть

$config['base_url'] = site_url('admin/home/accounts/index/');
0 голосов
/ 11 сентября 2013

в системе -> файл Pagination.php (настройки по умолчанию)

class CI_Pagination {

var $base_url           = ''; // The page we are linking to
var $prefix             = ''; // A custom prefix added to the path.
var $suffix             = ''; // A custom suffix added to the path.
.
.
}

$ config ['суффикс'] = "пример"

Url_suffix для вашегонумерация страниц ..........

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...