>  Q&A  >  본문

이 Laravel 애플리케이션에서 AJAX 호출이 실패하는 이유는 무엇입니까?

저는 Laravel 8에서 블로그 애플리케이션을 개발 중입니다.

ArticlesController 컨트롤러 단일 기사와 해당 comments를 표시하는 방법이 있습니다.

으아아아

뷰에는 다음과 같은 댓글 목록이 있습니다.

으아아아

기사 관련 경로:

으아아아

목표

댓글 페이지 매김을 "무한 스크롤"로 바꾸고 싶습니다.

이 목적을 위해 나는 다음을 가지고 있습니다:

으아아아

질문

페이지 2의 댓글은 https://larablog.com/show/deserunt-qui-exeritationem?page=2 방문 시 올바르게 표시되며 Chrome 콘솔에는 다음이 표시됩니다. 500(내부 서버 오류) 오류:

으아아아

오류는 ArticlesController의 70행에 있는 오류 메시지에서 역으로 추적할 수 있습니다. - $article = Article::firstWhere('slug', $slug):

비객체의 "id" 속성을 가져오려고 합니다.

이것은 $article = Article::firstWhere('slug', $slug) Ajax 없이도 잘 작동하기 때문에 이상합니다.

질문

  1. 이 오류의 원인은 무엇입니까?
  2. 가장 쉬운 해결 방법은 무엇인가요?

P粉779565855P粉779565855268일 전315

모든 응답(2)나는 대답할 것이다

  • P粉253518620

    P粉2535186202024-02-18 10:55:43

    firstWhere 返回符合传递条件的第一条记录,默认为 null. 그럼, 당신

    으아아아

    slug$slug 匹配的第一篇文章,如果不存在这样的记录,则返回 null 。现在,每当您引用 $article->id 时,您都会认为 $article 是一个正确的 Article 并且您想知道其 id의 값을 반환합니다. 일치하는 기사가 없으면 발생한 오류가 발생합니다.

    그러므로 추가하고$article 初始化后检查 empty($article) 실제로 비어 있을 때 극단적인 경우를 처리하는 것이 현명합니다.

    회신하다
    0
  • P粉121447292

    P粉1214472922024-02-18 10:00:05

    내 솔루션은 다음과 같습니다.

    routesweb.php에 이 새로운 경로를 추가했습니다:

    으아아아

    기사 내 컨트롤러:

    으아아아

    댓글이 10개 이상인 경우에만 Ajax 스크립트를 로드합니다.

    으아아아

    스크립트:

    으아아아

    회신하다
    0
  • 취소회신하다