2012-05-16 2 views
1

메신저 및 MVC 및 프레임 워크에 매우 익숙하다. 그리고 지금까지 많은 버그에 직면 해있다. 실제로 나를 괴롭히는 것은 모든 페이지에서 반복 할 코드를 처리하는보기 또는 다른 방법으로 컨트롤러를 호출하는 것이다.보기에서 컨트롤러를 호출하여 반복 시간이 소요되는 코드를 처리합니까?

는 그/그녀가 지금 사용자가 내가

헤더보기가가는 내 헤더보기에 "환영 이름을"말하고 싶은 로그인하면 내 사이트 를 방문 할 때 내가 사이트를 사용자가 로그 기록 여부 될 수 있다고 여러 다른 컨트롤러에서 호출 할 수 올바른 방법은 사용자가 각 컨트롤러에 로그인되어 있는지 확인하고 해당 데이터를 헤더보기로 전달하는 것입니다.

$this->load->controller('user'); 
$user = $this->user->is_logged(); 
if($user) 
echo "welcome $user"; 

거기입니다 :이 작업을 수행하는

하지만 쉬운 방법은 뷰에서 직접이 작업을 수행하고 난 헤더보기에 이런 일을하고 싶지

컨트롤러 인증 부분의 탐을 얻는 것입니다 이 일을하는 방법? 대답이 '예'라면 올바른/올바른 관행입니까? 과 그렇지 않은 경우, 시간을 줄이기위한 방법이 있습니까? 이런 종류의 상황이 있습니까?

답변

1

보기에서 컨트롤러를 호출하지 마십시오!

'반복적 인'작업이있는 경우 라이브러리 나 도우미에 넣고 거기에서 실행해야합니다. 해당 라이브러리에서

- 당신은

function display_log_status() 
{ 
    if ($this->user->is_logged()) 
    { 
     return "welcome!"; 
    } 
    else 
    { 
      return "please log in!"; 
    } 
} 

같은 함수가 그럼 그냥보기에 "display_log_status()"를 호출 할 수 있습니다.

MVC Guide

Creating Libraries in CI

관련 문제