질문을 삭제하지 말아주세요.!
 
1
0
-1

현재 라라벨을 독학으로 공부하고있는데 중복 제거에대해서 궁금한게 있어서 질문 남겨요,, 

도움을 구해가면서 제작하고 있는 사이트에서 페이지와 컨트롤러가 늘어나면서 심각한 중복이 생긴거 같아서 

드립니다 ㅠㅠ


현제 각 컨트롤러에서 __construct 를 통해서 데이터 베이스에서 메뉴목록을 로딩한다음에 각 메소드에서 

with 를 통해 로딩된 메뉴를 view 로 전송해서 뷰에서 메뉴를 보여지게되었습니다,,,,, 

그런데 컨트롤러가 많아지면 많아질수록 여러 컨트롤러에 __construct 메소드안에 메뉴를 불러오는 같은 코드들이 

있어서 보기 싫어지더라구요 어떤 방식으로 줄여야 할지 힌트좀 주시면 안될까요 ? 


어디서 미들웨어 파트를 공부하세요 이렇게,,, 쓰시는 다른방법들이 있는지 궁금해서요,, 비전공자에 직무도 

다르니 전문가 분들이 어떤식으로 없에는지 힌트좀 얻고자 질문드립니다!!


    CommentAdd your comment...

    1 answer

    1.  
      3
      2
      1

      모든 뷰에 공통적으로 렌더링해야 하는 메뉴라면, 라라벨 제안하는 방식은 "뷰 컴포저"입니다. 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,
              ]);
          }
      }
        CommentAdd your comment...