Я работаю над проектом Codeigniter, и я видел доступ к контроллеру из модели. Мне интересно, является ли контроллер $ this-> таким же или иным, как с использованием $ CI = & get_instance(). Я предполагаю, что нет, но я больше знаком с стандартным возвратом данных из функции, чем этим. Я не видел примеры CodeIgniter делают это, так что я не думаю, что это предложил способ доступа к контроллеру, но больше хака:Codeigniter - данные контроллера доступа от модели
class my_model extends CI_Model
{
public function __construct()
{
$this->errors = array();
parent::__construct();
$this->controller = get_instance();
}
public function somefunc()
{
// Accessing controller
$this->controller->session->set_userdata('foo', 'bar');
$this->controller->data = "fubar";
}
}
Я думаю, что это анти-шаблон. Контроллер должен быть управляющим логикой. Вы можете сделать это, получив возврат от функции модели. – Phiter
Да согласен с @phiter. Но все же вы хотите получить доступ, затем попробуйте $ this-> controller = & get_instance(); Найти подробный ответ здесь: http://stackoverflow.com/a/4740548/1578380 – Chintan7027