놀기 전에...

계속 new JsonResponse 해주기 귀찮으니까, 모듈하나 만들자.

protected  function jsonResponse($data)
    {
        return new JsonResponse($data);
    }

매개변수 넣으면 json으로 생성해주고 리턴시켜주는 함수야.

엥 어떻게 씀? 🙄

json으로 만드는게 보통 비동기로 데이터 보기 위해서 하는거 자나.

컨트롤러, 모델로 가공해서 각 게시글에 대한 뷰 데이터를 가져왔다치자. :

$view = $this->model('HelpBoard')->getView($category, $mainNo, $stepNo, $depNo, $lineNo, ['often_view' => '0']);
return $this->response('Faq/jsonView', [
            'faq' => $view
        ]);

$view에는 각 게시글에 대한 정보가 담겨있겠지?
그리고 얘를 Faq폴더에 jsonView.blade.php라는 파일에다가 $view가 가지고 있는 데이터를 바인딩 시켜줄거야.

이제 jsonView 파일을 만들자.

@if (!empty($faq))
<div class="answer" id="faq-view-{{ $faq->code }}-{{ $faq->main_no }}-{{ $faq->dep_no }}">
    <p>
        {{ $faq->content }}
    </p>
</div>
@endif

'이렇게 불러와졌음 좋겠다' 싶은 마크업으로 만들어 놓고,
이 파일을 불러오고 싶은 파일로 가서 스크립트 처리 고고하면 끝!

// Faq\list.blade.php
function view(category, mainNo, stepNo, depNo, lineNo) {
            $.get('/apps/faq/json_view/' + category + '/' + mainNo + '/' + depNo, {
                step_no: stepNo,
                line_no: lineNo
            }, function (response) {
                if (response.result == false) {
                    return false;
                }
                $("#faq-" + category + '-' + mainNo + '-' + depNo).append(response)
            })
        }

예외처리도 잊지마

if (empty($view)) {
            return $this->jsonResponse([
               'result' => false,
               'message' => '등록된 내용이 없습니다.'
            ]);
        }