脚本宝典收集整理的这篇文章主要介绍了php – 从CodeIgniter中每个页面上所需的模型中检索数据的最佳方法是什么?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
if ($this->users_model->is_LOGged_in()) { $data->PRofiles = $this->profiles_model->get_profiles(); } $this->load->VARs($data);
有一个更好的方法吗?我考虑过像这样扩展CI_Controller类的选项,但无法确定如何最好地将变量传递给需要信息的实际方法.
class MY_Controller extends CI_Controller { public function __construct() { // Alternatively these Could be auto-loaded $this->load->model(array('profiles_model','users_model')); if ($this->users_model->is_logged_in()) { $data->profiles = $this->profiles_model->get_profiles(); } } }
我关心的是最佳实践,最佳性能和最佳缓存能力(如果可能的话).
>添加helper.
>将新助手添加到autoload.
>只需在您需要的地方拨打您的电话.
我这样做的原因是因为如果你需要它在许多不同的控制器上,那么将它放在一个容易接近的地方是非常方便的.当您需要维护代码时,它也会变得更容易.例如,如果要添加缓存,则只需将该代码添加到该单个函数中,而不必在每个控制器中进行更改.
事实上,在您的具体情况下,我实际上是created my own session class来扩展CI会话.作为一个非常基本的例子(我也使用sessions in database):
class MY_Session extends CI_Session { public function __construct() { parent::__construct(); } public function login($email,$password) { $CI =& get_instance(); $CI->load->model('usermodel','user'); $result = $CI->user->login($email,$password); if($result === false) { return false; } else { $this->set_userdata('email',$result->email); return true; } } public function is_logged_in() { $email = $this->userdata('email'); if(!empty($email)) { return true; } else { return false; } } }
这样,由于您可能将此信息存储在会话中,因此将这些信息保存在一起非常有意义.
以上是脚本宝典为你收集整理的php – 从CodeIgniter中每个页面上所需的模型中检索数据的最佳方法是什么?全部内容,希望文章能够帮你解决php – 从CodeIgniter中每个页面上所需的模型中检索数据的最佳方法是什么?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。