получить доступ к модели из представления в codeigniter?

может ли кто-нибудь сказать мне, как мне получить доступ к модели из представления в кодеигнитре?

Загрузите модель на контроллер

$this->load->model('yourmodel'); 

Присвойте этой модели переменной var

 $data['model_obj'] = $this->yourmodel; 

и назначьте этот массив данных вашему шаблону просмотра

Использовать объект $ model_obj в шаблоне представления для вызова методов модели

 $model_obj->some_method() 

Надеюсь это поможет …

CodeIgniter $this->load->model() абсолютно ничего не возвращает. Посмотрите на это: system/libraries/Loader.php .

Это ничего не выведет:

 $model = $this->load->model('table'); print_r($model); 

И этот следующий пример даст вам фатальную ошибку. Call to a member function some_func() on a non-object :

 $model = $this->load->model('table'); $model->some_func(); 

Неважно, существует ли эта функция даже, $model не является объектом.

Дело в том, что в вашей модели есть метод, который возвращает данные, затем вызывает эту функцию и передает результаты в файл вида:

 $this->load->model('table'); $data = $this->table->some_func(); $this->load->view('view', $data); 

PS: Как единственный ответ, который вы приняли за абсолютную ошибку?

Просмотр темы:

Просмотр вызова модели

Кстати, зачем вам нужно получить доступ к model из view , вы также можете отправить данные модели в представление с controller что является обычным и лучшим подходом.

В качестве хорошей заметки держите свою логику обработки вне представления, вместо этого вы должны использовать controller .

Вы можете использовать следующий код:

  $ci =&get_instance(); $ci->load->model(your model); $ci->(your model)->(your function); Note: You have to call your model in your controller.Its working fine 

Поскольку $ model не является объектом, вы можете сделать вызов таблицы «table» с помощью оператора разрешения «::», который может вызывать функцию самого класса без какого-либо экземпляра объекта.

 $this->load->model('table'); table::some_funct(); 

Примечание: вам также нужно сделать статическую функцию «some_funct» внутри вашей «таблицы» модели.

Привет. Вы можете получить доступ из режима просмотра в тот же режим, что и на своем контроллере. Помните, что вид доступа к моделям, которые импортируют его контроллер.

в исходном UML я выгляжу для архитектуры MVC, просматриваю методы вызова в модели ..

http://img.ruphp.com/php/mvc_pope_krasner.png

… но на практике с PHP-приложениями, поскольку настойчивость не отслеживает изменения состояния объектов между запросами (или, по крайней мере, неэффективно), я считаю, что лучше поддерживать все вызовы методов модели в контроллере и передавать результат, чтобы посмотреть, если возможно ,

Вы можете получить доступ к основному методу из представления в кодировщике.

 public function index() { $this->load->model('persons'); $data['mydata'] = $this->persons->getAllSessionData(); $this->load->view('test_page', $data); } 

ввиду

 print_r ($mydata); 

моя функция вернула массив.