Codeigniter不显示正确的$ config

时间:2014-04-16 12:18:59

标签: php codeigniter codeigniter-2

由于某种原因,我的配置项无法正常工作。不会显示正确的主题。它显示默认主题,但应显示codeigniter主题。

默认主题已备份,因此如果文件不存在,则会显示默认值。

我也遇到了数组错误

1:应显示当前主题。

配置文件template.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
// Template Change
$config['config_template'] = 'codeigniter';
?>

Controller Welcome.php

public function index() {
    $data['header'] = $this->load->view($this->config->item('config_template') . '/template/common/header', NULL, TRUE);
    $data['footer'] = $this->load->view($this->config->item('config_template') . '/template/common/footer', NULL, TRUE);

    if (file_exists(APPPATH . $this->config->item('config_template') . '/template/common/welcome_message', $data)) {
       $this->config->item('config_template') . '/template/common/welcome_message';
    } else {
    $this->load->view('default/template/common/welcome_message', $data);
}

2:存在文件问题

遇到了PHP错误 严重性:警告 消息:file_exists()正好需要1个参数,给定2个 文件名:controllers / welcome.php 行号:9

2 个答案:

答案 0 :(得分:0)

我不知道你为主题使用了什么,但从我看到的内容:

  • $this->config->item('config_template') . '/template/common/welcome_message';

这条线完全没有意义。如果你只是写

,情况就是这样
'something/template/common/welcome_message';

我很确定你想要这样做:

$this->load->view($this->config->item('config_template') .'/template/common/welcome_message', $data);
  • file_exists(APPPATH . $this->config->item('config_template') . '/template/common/welcome_message', $data)

这里有1个冗余参数。正如错误所说,file_exists()接受1个参数,你有2个(第二个是$data) - 删除它并且错误应该消失。我想你想把它放在$this->load->view

里面的下一行

修改:要明确,这里是您应该使用的完整代码。

public function index() {
    $data['header'] = $this->load->view($this->config->item('config_template') . '/template/common/header', NULL, TRUE);
    $data['footer'] = $this->load->view($this->config->item('config_template') . '/template/common/footer', NULL, TRUE);

    if (file_exists(APPPATH . $this->config->item('config_template') . '/template/common/welcome_message')) {
       $this->load->view($this->config->item('config_template') . '/template/common/welcome_message', $data);
    } else {
        $this->load->view('default/template/common/welcome_message', $data);
    }
}

答案 1 :(得分:0)

你需要加载&#34; template.php&#34;,就像这样    $this->config->load('template');

所以你的代码(Controller Welcome.php)将是:

public function index() {
    $this->config->load('template');
    $data['header'] = $this->load->view($this->config->item('config_template') . '/template/common/header', NULL, TRUE);
    $data['footer'] = $this->load->view($this->config->item('config_template') . '/template/common/footer', NULL, TRUE);

    if (file_exists(APPPATH . $this->config->item('config_template') . '/template/common/welcome_message', $data)) {
       $this->config->item('config_template') . '/template/common/welcome_message';
    } else {
       $this->load->view('default/template/common/welcome_message', $data);
    }
}