CakePHP/MVC의 요점을 완전히 놓치지 않았는지 확인하기 위해 약간의 피드백이 필요합니다.CakePHP를 처음 사용합니다. 이 사이트 메뉴는 현명하고 전통적인 것입니까?
저는 CakePHP에 mini-cms를 디자인하고 있습니다. 본질적으로 사진 앨범입니다. 나는 모든 페이지에 표준 보일러 판 드롭 다운 메뉴가있는 것을보고있다. 당연히 메뉴는 사용자가 앨범을 삭제하고 추가 할 때 동적이어야합니다.
내 목표: (. 그것은 렌더링하기 전에 컨트롤러는 뷰 클래스에 설정된 변수를 추진 한 대신 컨트롤러에 다시 호출 견해, 즉) View::actionRequest()
의 반대 방향으로 이동 무언가를 구축 나의 이해는 View::requestAction()
을 것입니다 매우 우아하지 않고 아주 느립니다.
이것은 메뉴 키워드가 들어있는 표의 모델입니다. 나는 사방을 원하기 때문에 app/Model/ModelItem.php
class MenuItem extends AppModel {
public function buildMainMenu() {
return $this->find('all');
}
}
, 나는 AppController
class AppController extends Controller {
public function beforeFilter() {
$this->loadModel('MenuItem');
$this->set('mainMenuItems',$this->MenuItem->buildMainMenu());
}
}
에 전화를 넣어 그리고 이것은 CSS 내 기본 레이아웃의 상단에 싣는다 요소입니다 - 요소 파일을 : app/View/Element/navigation.ctp
- 레이아웃 : app/View/Element/Layout/default.ctp
<ul id="navigation">
<?php
foreach($mainMenuItems as $item) {
echo "<li>".$item['MenuItem']['name']."</li>";
}
?>
</ul>
나는 위스콘신 결국 테이블에있는 모든 항목의 멋진, 총알 목록. 이걸 완전 망쳐 놓은거야? 내가 잘못 했니? 나는 모른다.
beforeRender() 이동에 +1 (beforeFilter에서보기로 항목을 전달해서는 안 됨) – mark