разбиение на страницы не работает должным образом в codeigniter 2.1.0 с суффиксом url
Я использую 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' и $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 answers
Я вижу много проблем в вашем коде. Но 1-е дело 1-е.
Положить
$this->uri->segment(4)
В вашем запросе в смещении.
Обновление: если вы еще не сделали mod_rewrite
, добавьте'index.php "к твоему $config['base_url']
.
Например.
$config['base_url']=base_url().'index.php/admin/....';
Добавьте свой путь в приведенный выше код.
$config['base_url'] = site_url('admin/home/accounts');
В этой строке вам нужна обратная косая черта в конце, например
$config['base_url'] = site_url('admin/home/accounts/');
Обновление
Добавьте это в контроллер ur по-своему
$data['links']=$this->pagination->create_links();
Обновление Сумасшедшая идея, хотя я меньше знаю о codeigniter.
Переключайтесь между вашей моделью и контроллером. Вы уверены, что то, что вы называете контроллером, является контроллером в вашем коде? те же вопросы для модели.
Обновление Мои извинения, ваш базовый URL должен быть
$config['base_url'] = site_url('admin/home/accounts/index/');
В системе -> 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.
.
.
}
$ конфигурация['суффикс'] ="пример"
Url_suffix для вашей разбивки на страницы ..........