2009-09-17 2 views
1

어떻게 MVC 나는 사용자들이 또는하지 로그인 여부에 따라 더 많은 옵션을 갖고 싶어 (Kohana에서 만든) 내 페이지 중 일부MVC 프레임 워크의 뷰에 조건부 데이터를 표시하는 방법은 무엇입니까?

을 프레임 워크에 사람들이 일반적으로 조건문을 처리하고 프로필이 자신을인지 할 예를 들어 자신의 프로필. 자신의 경험에 비추어 볼 때 별도의 뷰나 빈 변수를 만들거나 뷰에서 논리를 수행합니까?

감사

Zenna

답변

2

이 뷰는 변수의 값을 기준으로 모양을 얼마나 다른지에 따라 달라집니다. 예를 들어 몇 가지 컨트롤을 숨기거나 표시해야하는 경우 컨트롤에 뷰를 포함시키는 경우가 있는데,이 컨트롤은 경우에 따라 비어있을뿐만 아니라 다른 컨트롤에도 데이터가 포함됩니다.

두 개 이상의 컨트롤이 동시에 표시되거나 숨겨지고 프레임 워크가 "패널"(다시 사용할 수있는 부분)이라는 개념을 지원하는 경우 해당 컨트롤 그룹을 패널로 분리하여 표시/조건에 따라 해당 패널을 숨 깁니다.

"청결 함"(하나의보기에서 두보기에 대해보기 구성 요소를 혼합 했습니까?)과 "쉽게 업데이트 할 수 있습니다"(두보기가 동시에 진화하는 경우 두 곳 또는 한 곳만 업데이트합니까?)

2

필자에게 개인적으로보기 요소를 표시/숨기기를 고려하여보기의 어떤 부분을 표시할지 결정하는 정보를보기에 전달합니다.

Kohana의 경우 $ User 변수를 User_Model 객체 인 뷰에 전달하면 사람이로드되지 않아도 객체가 여전히 존재하므로보기에 코드를 쓸 수 있습니다. 같은 :

<?php if ($user->logged_in()):?> 
<div>Some login only markup here</div> 
<?php else:?> 
<div>some not login only markup here</div> 
<?php endif;?> 

마일리지 스크래치 서면 모델 대신 ORM 또는 다른 ORM 같은 라이브러리를 사용하는 경우에 따라 다를 수도 있습니다.

관련 문제