是的,第一次使用分页并且不能让它超出第一页(404错误)。这似乎围绕$ offset变量,好像我将偏移量的变量更改为整数(例如15),它在第15行以后的第一页显示结果 - 但是$ this-> uri-> segment(2)变量不起作用。它都显示正确,但第二页不会加载(正如我所说,404错误)。
控制器:
<?php
class Brands extends CI_Controller
{
public function index()
{
$this->load->library('pagination');
$config['base_url'] = base_url() . '/brands/';
$config['total_rows'] = $this->db->count_all('seixweb');
$config['per_page'] = 15;
$limit = $config['per_page'];
$offset = $this->uri->segment(2);
$this->pagination->initialize($config);
$this->load->model('Default_model');
... Etc.
}
}
型号:
<?php
class Default_model extends CI_Model
{
function get_list($limit, $offset)
{
$query = $this->db->get('tbl', $limit, $offset);
return $query->result_array();
}
}
网址(第一页):
http://www.mydomain.com/brands
网址(第二页):
http://www.mydomain.com/brands/15
我做错了什么?
虽然它与错误无关,但请查看:
<!-- Products -->
<div class="products">
<div class="cl"> </div>
<p><?=$this->pagination->create_links();?></p>
<div class="cl"> </div>
</div><!-- End Products -->
答案 0 :(得分:0)
那是因为您的链接可能不正确。
codeigniter的默认值为www.example.com/controller/action
,如果您没有更改任何内容,则您的链接会在控制器品牌中调用名为15的函数。
您需要将链接设置为http://www.mydomain.com/brands/yourfunctionname/15
或告诉codeigniter您希望它通过$config['uri_segment'] = 2;
寻找第二个uri细分受众群。在您的情况下不推荐。
答案 1 :(得分:0)
设置OFFSET的默认参数
$config['per_page'] = $this->uri->segment(3, 15);
第二个参数将默认值定义为15 if
$this->uri->segment(3)
不存在。
答案 2 :(得分:0)
$config['base_url'] = base_url() . '/brands/';
删除最后一个斜杠
$config['base_url'] = base_url() . '/brands';
添加规则routes.php
$route['brands/(:num)'] = "brands";
答案 3 :(得分:0)
从模型中提取记录时,将限制和分段值发送到模型中,您将获得所有必需的记录