CodeIgniter:如何覆盖控制器代码中的分页配置?

kla*_*sch 1 pagination codeigniter

我最近跳上了CodeIgniter列车,因为我最终想要为我不断发展的PHP/MySQL项目采用MVC架构.现在我遇到了一个probolemin,就我所能看到的那个早先没有描述过的PAgination configuratino.

可能问题不在于PAgination只是相关而是更一般.在我的第一次尝试中,我只是在控制器方法中填充了配置并将其传递给initialize()方法:

$config['base_url'] = $this->config->base_url() .  "/categorie/{$catName}/";
$config['total_rows'] =      $this->event_model->get_nrofevents_for_categorie($categorieObject->id, TRUE);
$config['per_page'] = 12;
$config['full_tag_open'] = '<div class="paging">';
$config['full_Tag_close'] = '</div>';
$config['prev_link'] = 'Vorige';
$config['next_link'] = 'Volgende';
$this->pagination->initialize($config);
Run Code Online (Sandbox Code Playgroud)

这很好用.但我有一些其他页面使用相同的分页,其大多数参数相同,只有base_url和total_rows配置属性对于每个页面是不同的.我已将公共配置放在config/pagination.php配置文件中,但没有看到在代码中添加依赖于页面的属性的选项.更一般的是,是否可以将通用配置放在配置文件中并在控制器方法中添加一些自定义属性?对我来说,这似乎是合乎逻辑的,但无法弄清楚如何......我尝试过类似的东西:

$this->load->config('pagination');
$this->config->set_item('next_link', 'blablabla');
Run Code Online (Sandbox Code Playgroud)

但似乎在读取配置文件后立即初始化分页,此代码无效.请问有什么建议?

com*_*857 6

由于initialize()只替换了您提供的密钥,因此您可以config/pagination.php保留默认值并initialize()使用更改的密钥进行调用.

配置/ pagination.php

 // put default values here
 $config['next_link'] = 'Volgende';
 $config['prev_link'] = 'Vorige';
 // ...
Run Code Online (Sandbox Code Playgroud)

调节器

 $this->pagination->initialize(array(
     'base_url' => base_url().'categorie/'.$catName.'/',
     'total_rows' => $totalRows,
      // ...
 )));
Run Code Online (Sandbox Code Playgroud)