CodeIgniter: $ доступ к данным во всех представлениях - PullRequest
0 голосов
/ 21 января 2019

Мне нужен доступ к переменным $ 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; ?>

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Почему вы не используете эти данные как глобальную переменную?

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()
    {
           ...
    }
}
0 голосов
/ 21 января 2019

Используйте индекс $ 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);
?> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...