메뉴 데이터 논리를 Laravel에 저장하는 가장 좋은 개념은 무엇입니까? 메뉴 묶음을 어디에 넣을 지. Base_Controller
에서 추가 기능 또는 다른 것을 만드시겠습니까?Laravel에 메뉴 로직을 배치 할 위치는 어디입니까?
답변
주 :이 답변이 Laravel 3 작성되었으며하거나 분리함으로써 달성된다 동적 메뉴를 만드는 가장 최근 Laravel 4
내가 좋아하는 방식으로 작동하지 않을 수 있습니다 메뉴 레이아웃을 만들고 Laravel의 작곡가를 통해 메뉴 데이터를 주입합니다 (Composer PHP 패키지 관리자와 혼동하지 마십시오).
<!-- layouts/default.blade.php -->
<div id="header">Title</div>
<div id="menu">
@render('parts.menu')
</div>
<div id="content"></div>
<div id="footer"></div>
마지막으로, 우리는 작곡가 통해 변수를 주입 할 수있다.
<?php
// application/routes.php
View::composer('parts.menu', function($view){
$view->with('menuitems', Menu::all());
});
마다 parts/menu.blade.php
가 호출이 방법, 작곡가보기를 차단하고 $menuitems
변수를 주입합니다. 그것은
return View::make('blahblah')->with('menuitems', Menu::all())
에 with
을 사용하는 것과 동일합니다은 도움이 :) 희망
편집 : 당신이 routes.php
의 논리를 가지고 마음에 들지 않으면 당신은 start.php
에 넣어 제이슨 루이스 '방법을 고려할 수 있습니다 start.php
을 별도의 파일로 분할해야합니다.
start
이라고하는 application
에 디렉토리를 만들고 일부 파일을 채우십시오.
+ application [DIR]
\-> + start [DIR]
|-> autoloading.php
|-> composers.php
|-> filters.php
\-> validation.php
그런 다음 당신은 아이디어를 가지고 당신의
application/start.php
require __DIR__ . DS . 'start' . DS . 'autoloading.php';
require __DIR__ . DS . 'start' . DS . 'filters.php';
require __DIR__ . DS . 'start' . DS . 'composers.php';
require __DIR__ . DS . 'start' . DS . 'validation.php';
의 끝 부분에 코드 줄을 추가합니다. composers.php에 작곡가 기능을 추가하십시오.
여기에서 전체 기사 읽기 : http://jasonlewis.me/article/laravel-keeping-things-organized
나는 두 개의 대답을 하나로 합쳤다고 생각한다. – Orbitum
새 버전에서는 @render ('parts.menu') 대신 @include ('parts.menu')를 사용합니다. – hugronaphor
@CornelAndreev : render와 include의 차이점은 무엇입니까? – akhyar
view composer에있는 데이터를 가져오고 HTML macro을 사용하여 HTML을 생성하는 방법은 어떻습니까?
Laravel에는 여러 가지 방법이 있습니다. 즉, 이것은 아마도 약간의 혼란 스러울 수 있습니다.
뷰 컴포저에 대한 문서에서 _ "작성자는 일반적으로 application/routes.php에 정의되어 있습니다"_라고되어 있습니다. 논리를위한 라우팅이 아닌 경로를 사용합니다. 경로가없는 솔루션입니까? – Orbitum
그들은 경로와 아무 상관이 없습니다. 원하는 곳 어디에서나 추가 헬퍼 파일에 넣을 수 있습니다. – Franz
좋아,이 로직 (작성자)을 어디에 넣어야합니까? Base_Controller 함수에서? 이것은 나의 주요 질문이다. 나는 Laravel에 많은 유연한 것들이 있다는 것을 이해하지만 어디에 넣어야할지 모른다. – Orbitum
- 1. 프로젝트 구조에서 뷰 특정 로직을 배치 할 위치는 어디입니까?
- 2. 일반 앱 메소드를 배치 할 위치는 어디입니까?
- 3. 감사 필드를 배치 할 위치는 어디입니까?
- 4. Application.Current.Dispatcher.BeginInvoke - Try & catch를 배치 할 위치는 어디입니까?
- 5. ActionFilter에 없으면 로직을 넣을 위치는 어디입니까?
- 6. MVC에서 선택 사항을 볼 수있는 상태를 배치 할 위치는 어디입니까?
- 7. 집계 루트의 하위를 업데이트하기 위해 도메인 로직을 배치 할 적절한 위치는 어디입니까?
- 8. 정렬 후 요소 배치 위치는 어디입니까?
- 9. Sketchflow의 드롭 다운 메뉴 위치는 어디입니까
- 10. 우리의 솔루션에 엔티티 프레임 워크를 배치 할 위치는 어디입니까?
- 11. Eclipse에서 실행되도록 외부 아카이브를 배치 할 위치는 어디입니까?
- 12. 캡슐화 된 함수를 다른 스크립트에 배치 할 위치는 어디입니까?
- 13. (Cocos2d) 입자 시스템을 사용할 때 autoRemoveOnFinish를 배치 할 위치는 어디입니까?
- 14. 문서에서 javascript 함수 정의를 배치 할 위치는 어디입니까?
- 15. 미리 생성 된 직렬화 어셈블리를 배치 할 위치는 어디입니까?
- 16. 구성 요소 기반 아키텍처에 인터페이스를 배치 할 위치는 어디입니까?
- 17. 관리 세션을 MVC 패턴에 배치 할 위치는 어디입니까?
- 18. Android에 타사 푸시 코드를 배치 할 위치는 어디입니까?
- 19. 모델을 레일스에서 반환하는 데 기본 값을 배치 할 위치는 어디입니까?
- 20. listview에 대해 "새 레코드 추가"항목을 배치 할 위치는 어디입니까?
- 21. 리포지토리 패턴 : 여러 엔터티에 닿는 기능을 배치 할 위치는 어디입니까?
- 22. Android 다른 테마에 대해 다른 아이콘을 배치 할 위치는 어디입니까?
- 23. JavaScript에서 대화 형 객체를 배치 할 위치는 어디입니까?
- 24. 매개 변수에서 '&'를 함수에 배치 할 위치는 어디입니까?
- 25. SPRY를 사용할 때 HTML 5 요소를 배치 할 위치는 어디입니까?
- 26. 도메인 모델에 기술 관련 정보를 배치 할 위치는 어디입니까?
- 27. 니블레스 AppKit 프로젝트에서 뷰 초기화를 배치 할 위치는 어디입니까?
- 28. 앱에 전역 인 엔터티를 배치 할 위치는 어디입니까?
- 29. 인터페이스를 선언 할 위치는 어디입니까?
- 30. MVC : 뷰를로드 할 위치는 어디입니까?
"메뉴 로직"이란 무엇입니까? –
예를 들어 DB에서 메뉴 요소를 가져 와서 뷰에서 렌더링하기 위해 메뉴 (번들) 저장소에 추가합니다. – Orbitum