【问题标题】:codeigniter base_url inside constants file常量文件中的codeigniter base_url
【发布时间】:2012-12-11 15:50:57
【问题描述】:

目前我以以下方式显示图像:

<img src="<?php echo base_url().USER_UPLOAD_URL.$post['userPhoto'] ?>" />

USER_UPLOAD_URL 在 application/config/constants.php 中定义。

define('USER_UPLOAD_URL', "uploads/user_uploads/");

有没有办法将 base_url() 包含在 constants.php 中?这样我就不需要每次都在视图中编写 base_url() 。有没有替代方法?

tnx

【问题讨论】:

    标签: php codeigniter codeigniter-2


    【解决方案1】:

    constants.php 在 config.php 之前加载,所以你不能使用来自 constants.php 的$config['base_url']

    但你可以这样做:

    constants.php

    define('BASE_URL', "http://mysite.com");
    define('USER_UPLOAD_URL', BASE_URL."uploads/user_uploads/");
    

    config.php

    $config['base_url'] = BASE_URL;
    

    【讨论】:

    【解决方案2】:

    您不能在常量文件中使用base_url(),因为常量文件是先加载的,而base_url() 仅在您自动加载 url 帮助程序或按控制器加载时才会加载。

    这里有一个建议,您可以在控制器中定义它:

    public function __construct()
    {
        $this->load->helper('url');
        define('USER_UPLOAD_URL', base_url('uploads/user_uploads/'));
    }
    

    然后视图可以访问。

    【讨论】:

    • 我想过类似的事情,但这会在应用程序的不同部分拆分常量。
    • @user1324762 同意这不是最好的解决方案,只是突然出现在我脑海中的第一件事,也许你可以在常量文件中设置一些东西,而无需使用 base_url() 函数
    【解决方案3】:

    我会使用自定义控制器来补充@Dale 的答案。首先,在 /application/core/GeneralController.php 中创建控制器:

    <?php
    class GeneralController extends CI_Controller{
        public function __construct()
        {
            parent::__construct();
            $this->load->helper('url');
            define('USER_UPLOAD_URL', base_url('uploads/user_uploads/'));
        }
    }
    

    现在,您可以从 GeneralController 而不是 CI_Controller 扩展所有控制器,因为现在定义了 USER_UPLOAD_URL

    【讨论】:

      【解决方案4】:

      这是一个老问题,我使用APPPATH 克服了这个问题。 APPPATH 在 constants.php 中工作。但它在应用程序文件夹中返回路径为var/www/html/projectfolder/application,您可以将数据存储在新文件夹或third_party 文件夹中。 在常量中,您可以定义为例如define('pace-min-js',APPPATH.'third_party/luna/vendor/pacejs/pace.min.js');

      【讨论】:

        猜你喜欢
        • 2018-07-26
        • 1970-01-01
        • 2018-11-08
        • 1970-01-01
        • 2014-06-01
        • 2012-07-26
        • 2016-02-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多