「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Laravel 5ニュース記事でユーザー名にアクセスするときに、「非オブジェクト属性を取得しようとするエラー」が表示されるのはなぜですか?

Laravel 5ニュース記事でユーザー名にアクセスするときに、「非オブジェクト属性を取得しようとするエラー」が表示されるのはなぜですか?

2025-04-14に投稿されました
ブラウズ:438

Why am I Getting

オブジェクトプロパティにアクセスできない-LARAVEL 5

問題説明

ニュース記事からユーザーの名前をエコーアウトしようとする試みは失敗しているため、次のエラーになります:

ErrorException: Trying to get property of non-object
Context

モデル

クラスニュース拡張モデル { public function positsby() { return $ this-> belongsto( 'app \ user'); } } クラスユーザーはモデルを拡張します { 保護された$ fillable = ['name'、...]; }
class News extends Model
{
    public function postedBy()
    {
        return $this->belongsTo('App\User');
    }
}

class User extends Model
{
    protected $fillable = ['name', ...];
}

schema

    table: 'name' column
  • テーブル:ユーザーがユーザーにリンクする「postsby」列を持つニュースshowarticle($ slug) { $ article = news :: where( 'slug'、$ slug) - > firstorfail(); return View( 'article'、compact( 'article')); }
bladeテンプレート

{{$ article-> postsby-> name> name}}

説明
class News extends Model
{
    public function postedBy()
    {
        return $this->belongsTo('App\User');
    }
}

class User extends Model
{
    protected $fillable = ['name', ...];
}
アレイ、オブジェクトではありません。アレイにアクセスしようとすると、プロパティが認識されず、エラーがスローされます。これは、FirstOrfail()の代わりにNewsモデルのFindBySlugメソッドを使用することで実行できます。 { $ article = news :: findbyslug($ slug); //オブジェクトを返します return View( 'article'、compact( 'article')); }

これにより、オブジェクト上の - > positsbyプロパティに正常にアクセスし、ブレードテンプレートにユーザー名を表示できます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3