В Codeigniter: Как определить модель и контроллер представлений? - PullRequest
1 голос
/ 28 сентября 2011

Есть ли способ определить название модели и имя контроллера для таких представлений, как print_r($model) или print_r($controller)?

Например:

view.php

<div class="data">
<?php
echo "this is from".$controller;
echo "this is from".$model;
?>
</div>

Ответы [ 3 ]

2 голосов
/ 28 сентября 2011

Контроллер может вызывать из нескольких моделей, и представление определяется контроллером (или включается в представление, назначенное контроллером).Вы действительно не должны вызывать данные из модели непосредственно в представление.

Вы можете получить имя контроллера из соответствующего сегмента URI, если вы не используете маршруты (или иным образом) для изменения имени сегмента.Я не уверен, что возможно даже иметь два контроллера одновременно.Опять же, у меня никогда не было необходимости даже пытаться.

Полагаю, вы могли бы вручную устанавливать переменные в контроллере для каждой функции и выводить их на страницу, но встроенной функции нет.автоматизированный способ сделать то, что вы ищете.

2 голосов
/ 28 сентября 2011

Имя контроллера можно получить с помощью:

$this->router->fetch_class();

Вы должны передать имя контроллера для просмотра (в виде переменной).
Но вы не можете идентифицировать модель в представлении - может быть более одной модели (в одном контроллере). Лучший способ - создать метод в вашей модели и назначить его переменной, передаваемой в представление.

2 голосов
/ 28 сентября 2011

Вы не должны передавать материал от модели прямо на вид. http://codeigniter.com/user_guide/overview/mvc.html и http://codeigniter.com/user_guide/overview/appflow.html

Если вы хотите передать информацию, вы можете сделать это.

model_name.php

//Class Declaration

    function get_data()
    {
       return 'This is the Model Data';
    }

controller.php

 //Class Declaration
    function index()
    {
        $data['controller'] = 'Data From the Controller';
        $data['model'] = $this->Model_Name->get_data();
        $this->load->view('view.php', $data);
    }

Вид остается таким же, как у вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...