php – 将函数传递给CodeIgniter中的视图?
发布时间:2020-12-13 22:30:59 所属栏目:PHP教程 来源:网络整理
导读:我可以将函数传递给CodeIgniter中的视图吗?该函数基本上检查是否设置了会话值.例如: public function is_logged(){ $logged = $this-session-userdata('user_id'); if ($logged){ return true; } else { redirect('index'); }} 现在我想把这个功能放在我的
我可以将函数传递给CodeIgniter中的视图吗?该函数基本上检查是否设置了会话值.例如:
public function is_logged(){ $logged = $this->session->userdata('user_id'); if ($logged){ return true; } else { redirect('index'); } } 现在我想把这个功能放在我的一些观点上.那我怎么能把这个功能传递给视图呢? 解决方法
我会采取不同的方法,就像@atno说的那样:你正在使用MVC模式,所以在你的视图中进行这种检查是“逻辑上的”错误以及违反DRY方法.
我会使用我在模型中的函数来检查控制器,并根据结果加载适当的视图: class Mycontroller extends CI_Controller { function index() //just an example { $this->load->model('mymodel'); if($this->mymodel->is_logged()) { $this->load->view('ok_page'); } else { $this->load->view('not_logged_view'); //OR redirect('another_page','refresh') } } } 在你的模型中: function is_logged() { $logged = $this->session->userdata('user_id'); if ($logged) { return TRUE; } else { return FALSE; } } 如果它需要以编程方式执行,对于控制器的每个方法(如检查登录),您可以检查构造函数内部: function __construct() { parent::__construct(); // check code here } 通过这种方式,您可以在调用控制器的任何方法之前进行检查,即在控制器初始化时进行检查. 更新: function index() { // or mypage() or whatever if($this->session->user_data('user_id')) { $this->load->view('ok_page'); } else { $this->load->view('not_ok_page'); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |