모든 뷰에 공통적으로 렌더링해야 하는 메뉴라면, 라라벨 제안하는 방식은 "뷰 컴포저"입니다. https://laravel.kr/docs/5.5/views#view-composers
요청마다 렌더링해야할 내용이 달라진다면, 저는 "서비스 클래스"를 이용할 것 같아요.
class ArticlesController { public function listArticles( ListArticleRequest $request, ArticleService $articleService, MenuService $menuService ) { $articles = $articleService->findArticlesBySearchParamDto( $request->getArticleSearchParamDto() ); $menu = $menuService->getMenuForArticlesList(); return View::make('some.view', [ 'articles' = $articles, 'menu' => $menu, ]); } }
현재 라라벨을 독학으로 공부하고있는데 중복 제거에대해서 궁금한게 있어서 질문 남겨요,,
도움을 구해가면서 제작하고 있는 사이트에서 페이지와 컨트롤러가 늘어나면서 심각한 중복이 생긴거 같아서
드립니다 ㅠㅠ
현제 각 컨트롤러에서 __construct 를 통해서 데이터 베이스에서 메뉴목록을 로딩한다음에 각 메소드에서
with 를 통해 로딩된 메뉴를 view 로 전송해서 뷰에서 메뉴를 보여지게되었습니다,,,,,
그런데 컨트롤러가 많아지면 많아질수록 여러 컨트롤러에 __construct 메소드안에 메뉴를 불러오는 같은 코드들이
있어서 보기 싫어지더라구요 어떤 방식으로 줄여야 할지 힌트좀 주시면 안될까요 ?
어디서 미들웨어 파트를 공부하세요 이렇게,,, 쓰시는 다른방법들이 있는지 궁금해서요,, 비전공자에 직무도
다르니 전문가 분들이 어떤식으로 없에는지 힌트좀 얻고자 질문드립니다!!