0

我在codeigniter控制器中有这个:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Test extends CI_Controller {

    public $idioma;

    public function index() {

        parent::__construct();

            // get the browser language.
        $this->idioma = strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));

        $data["idioma"] = $this->idioma;
        $this->load->view('inicio', $data);

    }

    public function hello(){
        $data["idioma"] = $this->idioma;
        $this->load->hello('inicio', $data);
    }
}

初始视图:

 <a href="test/hello">INICIO <?php echo $idioma ?></a>

你好视图:

Hello <?php echo $idioma ?>

inicio 视图效果很好,但是当加载 hello 视图时,什么都没有显示。知道为什么这不起作用吗?

4

1 回答 1

3

如果您希望自动设置类属性,您可以在构造函数中进行,而不是在 index() 中。如果直接调用其他方法,则 index() 不会在其他方法之前运行。在您的情况下,我假设您通过 url 作为 test/hello 打招呼

class Test extends CI_Controller {

    public $idioma;

    public function __construct(){
        parent::__construct();

            // get the browser language.
        $this->idioma = strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));
    }

    public function index() {

        $data["idioma"] = $this->idioma;
        $this->load->view('inicio', $data);

    }

    public function hello(){
        $data["idioma"] = $this->idioma;
        $this->load->hello('inicio', $data);
    }
}
于 2013-09-26T19:30:03.813 回答