私は Laravel 8 で ブログ アプリケーション を開発しています。
ArticlesController コントローラー 単一の記事とその Comments:
を表示するこのメソッドがあります。 リーリービューには次のようなコメントのリストがあります:
リーリー記事に関連するルート:
リーリー ###目標###この目的のために、私は次のものを持っています:
リーリー ###質問###https://larablog.com/show/deserunt-qui-exeritationem?page=2
にアクセスすると、ページ 2 のコメントが正しく表示され、Chrome コンソールにはこれらの
リーリー
エラーは、ArticlesController の 70 行目のエラー メッセージまで
追跡できます - $article = Article::firstWhere('slug', $slug):
非オブジェクトの属性「id」を取得してみます。
これは奇妙です。なぜなら
###質問###は Ajax
なしでも正常に動作するからです。
このエラーの原因は何ですか?
最も簡単な修正は何ですか?
リーリーfirstWhere
配信条件を満たす最初のレコードを返します。デフォルトはnull
です。それで、あなたの行slug
したがって、が
$slugに一致する最初の記事を返します。そのようなレコードが存在しない場合は
nullを返します。さて、
$article->idを引用するときは常に、
$articleが正しい
Articleであると想定し、その
の値を知りたいと考えます。 IDの。一致する記事がない場合は、発生したエラーが発生します。
$article
が初期化された後に
empty($article)をチェックし、実際に空である場合にエッジ ケースを処理することが賢明です。
これが私の解決策です:
この新しいルートを
リーリーroutes\web.php
に追加しました:記事内コントローラー:
リーリーコメントが 10 件を超える場合にのみ Ajax スクリプトをロードします:
リーリー ###脚本:### リーリー