Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在细枝视图中使用Codeigniter分页?_Php_Codeigniter_Twig - Fatal编程技术网

Php 如何在细枝视图中使用Codeigniter分页?

Php 如何在细枝视图中使用Codeigniter分页?,php,codeigniter,twig,Php,Codeigniter,Twig,我正在使用CodeIgniter 3.1.8和Bootstrap 4开发。我决定给它添加一些主题。该应用程序不是HMVC,而是MVC 我认为使用细枝模板引擎添加主题是个好主意。为此,我使用 主题模板的扩展名是.twig,而不是.php Posts控制器的这一部分负责显示带有分页的POST: private function _initPagination($path, $totalRows, $query_string_segment = 'page') { //load and con

我正在使用CodeIgniter 3.1.8和Bootstrap 4开发。我决定给它添加一些主题。该应用程序不是HMVC,而是MVC

我认为使用细枝模板引擎添加主题是个好主意。为此,我使用

主题模板的扩展名是
.twig
,而不是
.php

Posts控制器的这一部分负责显示带有分页的POST:

private function _initPagination($path, $totalRows, $query_string_segment = 'page') {
    //load and configure pagination 
    $this->load->library('pagination');
    $config['base_url'] = base_url($path);
    $config['query_string_segment'] = $query_string_segment; 
    $config['enable_query_strings'] =TRUE;
    $config['reuse_query_string'] =TRUE;
    $config['total_rows'] = $totalRows;
    $config['per_page'] = 12;
    if (!isset($_GET[$config['query_string_segment']]) || $_GET[$config['query_string_segment']] < 1) {
        $_GET[$config['query_string_segment']] = 1;
    }
    $this->pagination->initialize($config);

    $limit = $config['per_page'];
    $offset = ($this->input->get($config['query_string_segment']) - 1) * $limit;

    return ['limit' => $limit, 'offset' => $offset];
}

public function index() {

      //call initialization method
    $config = $this->_initPagination("/", $this->Posts_model->get_num_rows());

    $data = $this->Static_model->get_static_data();
    $data['base_url'] = base_url("/");
    $data['pages'] = $this->Pages_model->get_pages();
    $data['categories'] = $this->Categories_model->get_categories();  

      //use limit and offset returned by _initPaginator method
    $data['posts'] = $this->Posts_model->get_posts($config['limit'], $config['offset']);

    $this->twig->addGlobal('siteTitle', 'My Awesome Site');
    $this->twig->addGlobal('maincss', base_url('themes/caminar/assets/css/main.css'));
    $this->twig->display('themes/caminar/layout', $data);
} 
private function\u initPagination($path、$totalRows、$query\u string\u segment='page')){
//加载和配置分页
$this->load->library('pagination');
$config['base\u url']=base\u url($path);
$config['query\u string\u segment']=$query\u string\u segment;
$config['enable_query_strings']=TRUE;
$config['reuse\u query\u string']=TRUE;
$config['total_rows']=$totalRows;
$config['per_page']=12;
如果(!isset($\u GET[$config['query\u string\u segment']]))$\u GET[$config['query\u string\u segment']]<1){
$\u GET[$config['query\u string\u segment']=1;
}
$this->pagination->initialize($config);
$limit=$config['每页'];
$offset=($this->input->get($config['query\u string\u segment'))-1)*$limit;
返回['limit'=>$limit',offset'=>$offset];
}
公共职能指数(){
//调用初始化方法
$config=$this->_initPagination(“/”,$this->Posts_model->get_num_rows());
$data=$this->Static_model->get_Static_data();
$data['base_url']=base_url(“/”);
$data['pages']=$this->pages\u model->get\u pages();
$data['categories']=$this->categories\u model->get\u categories();
//使用_initPaginator方法返回的限制和偏移量
$data['posts']=$this->posts\u model->get\u posts($config['limit'],$config['offset']);
$this->twig->addGlobal('siteTitle','My Awesome Site');
$this->twig->addGlobal('maincss',base_url('themes/caminar/assets/css/main.css');
$this->twig->display('themes/caminar/layout',$data);
} 
如果我有经典的codeigniter视图,我会以这种方式在页面上显示分页(在项目的早期版本中,我已经这样做了):



但我现在需要一种将分页传递给细枝视图的方法。添加上述代码不起作用,我也找不到可行的替代方案。

在控制器中,只需将这些链接的显示添加为变量,然后在视图中正常显示即可

比如:

// Controller
$this->twig->addGlobal('pagination', $this->pagination->create_links());

// View

{{ pagination|raw }}

我应该将
$this->twig->addGlobal('pagination',$this->pagination->create_links())放置在控制器内部的什么位置
?谢谢@RazvanZamfir给您一个提示…在显示页面/模板后添加它将是错误的。在视图中使用
{{$pagination}
会产生
意外字符“$”
错误。但是使用
{{$pagination}
确实有效。请编辑您的答案,以便我可以验证它。谢谢你的帮助。@RazvanZamfir完成了!对不起,是afk:)
// Controller
$this->twig->addGlobal('pagination', $this->pagination->create_links());

// View

{{ pagination|raw }}