【问题标题】:Define custom variable in config.php and access it in view在 config.php 中定义自定义变量并在视图中访问
【发布时间】:2012-11-07 13:03:52
【问题描述】:

我已经在 config.php 中定义了 image_path,现在需要在视图中访问这个变量,就像我们使用 base_url() 一样。

有可能吗?

【问题讨论】:

    标签: codeigniter view config


    【解决方案1】:

    您需要扩展url_helper。请参阅文档中的 "Extending Helpers" 部分。

    简而言之,在您的application/helpers 文件夹中创建一个文件名MY_url_helper.php。 (假设$config['subclass_prefix'] = 'MY_',在您的配置文件中。)

    添加以下方法。

    if ( ! function_exists('image_path'))
    {
        function image_path() 
        {
            $CI =& get_instance();
            return $CI->config->item('image_path');
        }
    }
    

    这应该可以解决问题。

    【讨论】:

    • 我修改了这段代码来简单地访问它一个 config_item('NAME');但是为什么我们可以像 base_url() 一样简单地访问 base_url 而不能访问自定义配置变量呢?
    • 我猜他们更喜欢可读性和可扩展性而不是功能。毕竟image_path()config_item('image_path') 干净。它更具可读性,更易于测试,并且遵循框架的原则。第一种方法允许您在将来需要时添加特定的逻辑,而config_item('NAME') 则更难。我可以看到 config_item('NAME') 是你的助手的一个很好的实用方法,我不会在视图中使用它。
    【解决方案2】:

    使用constants.php,这就是它的用途,这是我的constants.php用于图像路径的。

    /*Constant paths*/
    define('LOGO_PATH',APPPATH.'assets/images/manulogos/');
    define('PROD_IMAGE_PATH',APPPATH.'../assets/images/prod_images/');
    

    然后你只需在你需要的地方调用常量。

    $imageName = $this->doUpload($control,PROD_IMAGE_PATH,$image,'all')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多