2017-02-01 1 views
0

그래서 내가 컨트롤러라는 페이지가 있다고 가정 해 봅시다.보기를로드하는 더 나은 방법 Codeigniter3

이 기능이 있습니다.

function __construct(){ 
parent::__construct(); 
$this->auth['result'] = $this->is_logged_in(); 
} 

위의 코드는, is_logged_in()라는 기능이 단순히 세션 데이터를 가져옵니다 확장 기능 'MY_Controller'을 요구한다.

내 첫 번째 질문은이 인증을 올바르게 수행하는 것입니까? 또는 나는 그것을 단순히 사용하고 있습니까?

어쨌든 내 주요 질문은보기로드에 관한 것입니다.

많은보기가 있다고 말하면 일부보기는 TYPE B 사용자의 액세스 수준과 다른 액세스 수준을 가진 TYPE 사용자 만 액세스합니다.

온라인 쇼핑몰을 광고하기 위해 등록한 사용자 및 상점 주인이있는 온라인 웹 사이트와 같이 두 계정이 다르게 생성된다고 가정 해 봅시다. 하나의 계정은 사용자 (일반/여행자)이고 하나의 계정은 hotelowner (호텔 irl 소유)입니다. 그래서 둘 다 겹쳐진 견해와 그들을위한 헌신적 인 견해를 가질 것입니다.

보기를로드 할 때 어떻게해야합니까? 내가 기능을 가지고 내 컨트롤러에

말,

public function view_home(){ 

} 

public function view_userprofile(){ 

} 

public function vieW_hotelprofile(){ 

} 

당신은 위에서 내 생각을, 내가 다른보기를로드하기위한 별도의 기능을 가지고 있습니다. 하지만 제 질문은, 어떻게 그것을 하나의 큰 기능으로 만드 느냐하는 것입니다. 예를 들어 같은

,

public function view($page ='home'){ 

} 

뷰 함수는 뷰를 액세스하는 다른 계정 단말기 같을 것이다.

access_levels를 확인하지 않아도된다면 더 간단 할 것입니다. 내 첫 번째 아이디어는 예를 들어 매우 긴 문장을 작성하는 것입니다.

if($this->auth['result'] = 1){ 
load view here. 
} 

이것은 허용할만한가요? 또한, 어떻게 효율적으로 처리 할 수 ​​있을까요? 그리고 인증에 관해서는,이 부분은 내가 옳은 방법으로 사용하는지 아닌지 정말 혼란 스럽습니다.

또한 매우 긴 if 문을 수행하면 어떤 값을 확인할 수 있습니까? 내가 당신이 특정보기에 대한 액세스 수준을 확인 해야하는지 알고 있지만 또한 로그인 사용자 이름을 확인하고 그것의 accesslevel 동일하면 데이터베이스에 일치합니까?

답변

0

당신은 그 차이와 if 문 무엇 스위치 케이스

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); 
    } 
+0

를 사용하여 시도 할 수 있습니다? 스위치가 여러 조건과 그에 따른 많은 결과가있을 때 더 적합합니까? –

+0

[http://stackoverflow.com/questions/680656/what-is-the-difference-between-if-else-and-switch] –