3

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

<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/");

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

tnx

4

4 回答 4

8

constants.php 在 config.php 之前加载,所以不能$config['base_url']从 constants.php 使用。

但你可以这样做:

常量.php

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

配置文件

$config['base_url'] = BASE_URL;
于 2012-12-11T17:47:56.863 回答
0

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

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

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

然后视图可以访问它。

于 2012-12-11T15:58:41.043 回答
0

我会使用自定义控制器来补充@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现在已定义

于 2012-12-11T23:18:53.240 回答
0

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

于 2017-09-13T13:46:27.117 回答