所以,假设我有一个名为pages的控制器。
使用此功能。
function __construct(){
parent::__construct();
$this->auth['result'] = $this->is_logged_in();
}
上面的代码调用了扩展函数“MY_Controller”,它具有一个名为is_logged_in()
的函数,并且只是获取会话数据。
我的第一个问题是,我的身份验证是否正确?或者我只是在使用它?
无论如何,我的主要问题是关于加载视图。
假设我有很多观点,有些观点只能由TYPE访问,其访问级别与TYPE B用户的访问级别不同。
假设两个帐户的创建方式不同,例如在某些在线网站中,有用户和店主注册为其商店做广告,或者例如在线旅行。一个帐户是用户(普通/旅行者),一个帐户是旅馆所有者(拥有酒店irl)。所以两者都会有重叠的观点和一些专门的观点。
加载视图时如何处理?
在我的控制器中说我有功能,
public function view_home(){
}
public function view_userprofile(){
}
public function vieW_hotelprofile(){
}
你从上面得到我的想法,我有单独的功能来加载不同的视图。但我的问题是,我如何将其变成一个大功能呢?
例如,
public function view($page ='home' ){
}
视图功能就像是不同帐户访问视图的终端。
如果我不必检查access_levels,这会更简单。我的第一个想法就是制作一个很长的IF(){}ELSEIF(){}
语句。
if($this->auth['result'] = 1 ){
load view here.
}
这是可以接受的吗?另外,我怎样才能有效地进行呢?关于身份验证,如果我以正确的方式使用它,这部分我真的很困惑。
另外,如果我做了很长的if语句,我会检查什么值?就像我知道你必须检查某些视图的访问级别,但我是否也检查登录的用户名,如果它的访问级别相同,则将其与数据库匹配?
答案 0 :(得分:0)
您可以尝试使用开关案例
public function loadView()
{
switch($this->auth['result']){
case 1:
$view= "home";
break;
case 2:
$view= "userprofile";
break;
case 3:
$view= "hotelprofile";
break;
default:
$view= "Welcome";
break;
}
$this->load->view($view);
}