【问题标题】:Pagination Codeigniter using twig使用 twig 的分页 Codeigniter
【发布时间】:2014-06-19 02:19:38
【问题描述】:

有人知道如何在分页 CodeIgniter 中使用 twig 配置 base_url 吗?

案例是:我可以使用 CI 分页库创建分页并且它成功了。

我在下面使用配置分页:

$config['base_url'] = "product/page";

在第一个页面的视图中它是成功的,当我点击下一个分页 URL 时,CSS 链接更改为 localhost/myweb/product/page/assets/css/style.css。 所以我可以加载我放在localhost/myweb/assets/css/style.css中的那个CSS因为css。

【问题讨论】:

    标签: php codeigniter twig


    【解决方案1】:

    关于分页,你可以使用:

    $config['base_url'] = base_url("/product/page");
    

    这里没有树枝。

    关于 Twig 中可用的 base_url(),您应该将助手添加到您的 Twig 库(例如,在 CI 项目的 application/libraries 中实现 Twig)作为 Twig 扩展。如果您的 application/libraries/Twig.php 类包含 twig 环境作为 _twig_env 属性,您可以使用类似:

    public function __construct()
    {
       // ...
    
       $this->ci_function_init();
    } 
    
    public function ci_function_init_one($twig_name, $callable)
    {
       $this->_twig_env->addFunction(
         new Twig_SimpleFunction($twig_name, $callable, array('is_safe' => array('html')))
       );
    }
    
    public function ci_function_init()
    {
      // url
      $this->ci_function_init_one('base_url', 'base_url');
      $this->ci_function_init_one('site_url', 'site_url');
      $this->ci_function_init_one('current_url', 'current_url');
      $this->ci_function_init_one('current_path', 'current_path');
    
      // form functions
      $this->ci_function_init_one('form_open', 'form_open');
      $this->ci_function_init_one('form_hidden', 'form_hidden');
      $this->ci_function_init_one('form_input', 'form_input');
      $this->ci_function_init_one('form_password', 'form_password');
      $this->ci_function_init_one('form_upload', 'form_upload');
      $this->ci_function_init_one('form_textarea', 'form_textarea');
      $this->ci_function_init_one('form_dropdown', 'form_dropdown');
      $this->ci_function_init_one('form_multiselect', 'form_multiselect');
      $this->ci_function_init_one('form_fieldset', 'form_fieldset');
      $this->ci_function_init_one('form_fieldset_close', 'form_fieldset_close');
      $this->ci_function_init_one('form_checkbox', 'form_checkbox');
      $this->ci_function_init_one('form_radio', 'form_radio');
      $this->ci_function_init_one('form_submit', 'form_submit');
      $this->ci_function_init_one('form_label', 'form_label');
      $this->ci_function_init_one('form_reset', 'form_reset');
      $this->ci_function_init_one('form_button', 'form_button');
      $this->ci_function_init_one('form_close', 'form_close');
      $this->ci_function_init_one('form_prep', 'form_prep');
      $this->ci_function_init_one('set_value', 'set_value');
      $this->ci_function_init_one('set_select', 'set_select');
      $this->ci_function_init_one('set_checkbox', 'set_checkbox');
      $this->ci_function_init_one('set_radio', 'set_radio');
      $this->ci_function_init_one('form_open_multipart', 'form_open_multipart');
    }
    

    您现在可以在树枝模板中使用 {{ base_url() }}

    【讨论】:

    • 谢谢 Alain,你说得对,不管 twig,解决方案是我必须设置全局变量“base url”并将其注册到 twig 函数,然后我可以用 {{ base_url }} 调用它在视图模板中。感谢您的回答阿兰。
    【解决方案2】:

    请检查 codeigniter 配置中的配置 base_url, base_url 必须是这样的: 如果您使用本地服务器作为 XAMPP : $config['base_url'] = http://localhost/{yoursite};

    不要错过输入 "http://" => 这很重要!

    【讨论】:

    • Gotcha.... 感谢 hary,我完全设置了基本 url 并在全局 funcion twig 中注册了函数,所以我使用 {{ base_url() }} 更改了所有资产的设置。完成 !! :)
    【解决方案3】:

    您应该在 css/js 文件上使用 base_url()site_url() 函数

    <link rel="stylesheet" type="text/css" href="<?php echo site_url('assets/css/style.css'); ?>">
    

    或使用始终显示基本网址的base href 魔术标签:

    <base href="<?php echo site_url(); ?>">
    

    【讨论】:

      猜你喜欢
      • 2021-03-07
      • 2014-03-08
      • 1970-01-01
      • 2016-04-14
      • 2012-12-21
      • 2017-02-21
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      相关资源
      最近更新 更多