簡體   English   中英

CodeIgniter:所有視圖中的$ data訪問

[英]CodeIgniter: $data access in all views

我需要在所有視圖中訪問整個站點中的$ data []變量。 我創建了TestLeangue控制器,並為$ data分配了一些值,但在所有視圖中都說未定義變量

    class TestLanguage extends MY_Controller
{
    public function __construct() {
        parent::__construct();
        $this->lang->load("menu","english");
    }

    function index() {
        $data['shipping'] = $this->lang->line('menu_shipping');
        $this->load->view('templates/navigation', $data);
    }
}

我回聲說我有未定義的變量。

<?= $shipping; ?>

使用$ data的索引作為變量名( $ shipping ),以獲取已分配為$data['shipping']

調節器

class TestLanguage extends MY_Controller
{
    public function __construct() {
        parent::__construct();
        $this->lang->load("menu","english");
    }

    function index() {
        $data['shipping'] = $this->lang->line('menu_shipping');
        $this->load->view('templates/navigation', $data);
    }
}

查看:模板/導航

<?php 
print_r($shipping);
?> 

為什么不像全局變量那樣使用這些數據?

class MY_Controller extends ...
{
    protected $data = [];
}

然后,每次擴展自定義控制器時,您都可以訪問常規數據。

class MyCustomStackOverflowController extends MY_Controller
{
    public function index()
    {
       $this->load->view('index', $this->data);
    }
}

另外,您可以使用$this->data加載當前控制器的常規信息,例如:

class MyCustomStackOverflowController extends MY_Controller
{
    public function __construct()
    {
        parent::__construct();

        $this->data['title'] = 'Stackoverflow';
    }

    public function index()
    {
           ...
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM