Laravel 500 error 해결기

아기코딩단2·2023년 7월 31일

ajax 코드

const confirmBtns = document.querySelectorAll('.confirm-btn');

    confirmBtns.forEach((btn) => {
        btn.addEventListener('click', (e) => {
            console.log(btn.value);
            const value = btn.value.split('/');
            const commentStatus = value[0];
            const commentId = value[1];


            if (confirm('진행하시겠습니까?')) {
                fetch("{{ route('comment.status') }}", {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json',
                        'X-CSRF-TOKEN': '{{ csrf_token() }}'
                    },
                    body: JSON.stringify({
                        commentStatus: commentStatus,
                        commentId: commentId
                    })
                })
                .then(response => {
                    if (!response.ok) {
                        throw new Error('Failed comment status');
                    }
                    return response.json();
                })
                .then(data => {
                    console.log(data);
                    // 서버에서 반환한 데이터를 처리하는 코드
                })
                .catch(error => {
                    console.error(error);
                    // alert('error');
                    // location.reload();
                });
              

Controller 코드


public function status(Request $request, comment $comment)
  {

      dd($request->all());
      exit;
      
  }  //end status

이렇게 작성했는데
계속 500error 가 발생했다

그래서 구글링하니 laravel.log 를 살펴보래서 보니 local.ERROR: Target class [App\Http\Controllers\comment] does not exist. {"userId":4,"exception":"[object] (Illuminate\Contracts\Container\BindingResolutionException(code: 0): Target class [App\Http\Controllers\comment] does not exist. at C:\Users\5\Desktop\board_git03\vendor\laravel\framework\src\Illuminate\Container\Container.php:891) 이 라고 써져있엇음

말도안댐

말도안되는 이유
1. 앞에 기능들은 잘 동작했는데(등록, 삭제, 수정) 근데 상태변경만 안된다는 게 말이안댐

구글링해도 이상한 답만 나오는 것임 버전 변경, 설정 변경 등 그래서 몇개는 시도해봤는데 여전히 안돼서 그냥 기존에 동작하던 코드랑 최대한 맞춰보니 파라미터가 달라서 그랬던 것이엇음


public function status(Request $request, comment $comment)
  {

      dd($request->all());
      exit;
      
  }  //end status

에서


public function status(Request $request)
  {

      dd($request->all());
      exit;
      
  }  //end status

으로 변경함

없는 거 받으려고 하니까 그랬던 거 같다.

정상적으로 동작함

그럼 다른 기능들은 어떻게 개발했냐?!?
라고 하면 진짜 우연찮게 알맞은 파라미터들만 넘겨줬기 때문

결론 : Document를 잘보자

profile
레거시 학살자

1개의 댓글

comment-user-thumbnail
2023년 7월 31일

좋은 글 감사합니다.

답글 달기