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