Laravel Eloquent 関連関数名
P粉729198207
P粉729198207 2023-07-23 17:45:15
0
1
409
<p>「投稿」と「カテゴリ」という 2 つのテーブルがあります。 「投稿」と「カテゴリ」の関係は多対一です。したがって、「Post」クラス モデルのコードは次のようになります。 <pre class="brush:php;toolbar:false;"><?php 名前空間 AppModel。 IlluminateDatabaseEloquentFactoriesHasFactory を使用します。 IlluminateDatabaseEloquentModel を使用します。 クラス Post はモデルを拡張します { HasFactoryを使用します。 $guarded = ['id']; パブリック関数カテゴリ() { return $this->belongsTo(Category::class); } }</pre> <p>このコードを使用すると、アプリケーションは正常に実行されます。 </p><p>問題は、カテゴリ関数名を「カテゴリ」に変更しようとして、次のように投稿のカテゴリ名にアクセスしようとしたときです。</p><p> <code>Post::first()->categories->name</code>、laravel では次のようなエラーが発生します<code>D:BelajarProgramCODINGANLaravelapplicationcoba-laraveleval() で null のプロパティ "name" を読み取ろうとしました'd コード。</code></p> <p>(編集</p> <p>Eloquent関数名が「category」の場合、「Post::first()->category」は投稿のカテゴリを返します。ただし、関数名を「categories」に変更し、「Post::first()->categories」を使用してアクセスしようとすると、null が返されます。 </p> <p>)</p> <p>カテゴリクラスモデルのEloquent関連関数の名前をランダムな名前に変更しようとしましたが、それでもアクセスでき、Laravelはエラーを報告しません。カテゴリクラスモデルのコードは次のとおりです。 </p> <pre class="brush:php;toolbar:false;"><?php 名前空間 AppModel。 IlluminateDatabaseEloquentFactoriesHasFactory を使用します。 IlluminateDatabaseEloquentModel を使用します。 クラス カテゴリはモデルを拡張します { HasFactoryを使用します。 $guarded = ['id']; パブリック関数posts(){ return $this->hasMany(Post::class); } }</pre> <p>誰か助けてくれませんか?カテゴリ クラス モデルでは Eloquent 関数名を変更できるのに、投稿クラス モデルでは変更できないのはなぜですか? </p>
P粉729198207
P粉729198207

全員に返信(1)
P粉330232096

次の手順を実行すると、問題が解決するはずです:

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート