Как использовать $ this в другом файле на Codeigniter? - PullRequest
0 голосов
/ 01 июня 2019

У меня есть файл с именем fn.php на мой взгляд, затем я создаю функцию для публикации данных, как это

function post($input_name){
   return $this->input->post($input_name);
}

В моем контроллере я называю это так,

public function myFunc(){
   $this->input->load('fn.php');
   // then I use the function that I have created like this
   post('myinputname');
}

Но ... Я получил ошибку, как я могу решить эту проблему?большое спасибо

1 Ответ

1 голос
/ 01 июня 2019

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

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

application/helpers/some_file_helper.php

function post($input_name){
   $CI = &get_instance();
   return $CI->input->post($input_name);
}

Часть get_instance() используется только тогда, когда $this (контекст CI) недоступен. Это происходит только в помощниках и библиотеках. В представлениях, контроллерах и моделях $this всегда доступен.

Модель или контроллер:

$this->load->helper('some_file');

print_r(post('somevar'));

Однако, если всеВы хотите получить прямой доступ к переменной post $this->input->post('somevar') и не вводить дополнительный слой.

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