Nom de la fonction associée Laravel Eloquent
P粉729198207
2023-07-23 17:45:15
<p>J'ai deux tableaux, à savoir "posts" et "categories". La relation entre les « postes » et les « catégories » est de plusieurs à un. Par conséquent, le code dans le modèle de classe « Post » est le suivant : </p>
<pre class="brush:php;toolbar:false;"><?php
Modèles d'application d'espace de noms ;
utilisez IlluminateDatabaseEloquentFactoriesHasFactory ;
utilisez IlluminateDatabaseEloquentModel ;
la classe Post étend le modèle
{
utilisez HasFactory ;
protégé $gardé = ['id'];
catégorie de fonction publique()
{
return $this->belongsTo(Category::class);
}
}</pré>
<p>En utilisant ce code, l'application s'exécute avec succès. </p><p>Le problème est lorsque j'essaie de changer le nom de la fonction de catégorie en "catégories" et que j'essaie d'accéder au nom de catégorie de la publication comme ceci : </p><p>
<code>Post::first()->categories->name</code>, laravel donne une erreur comme celle-ci <code>Tentative de lecture de la propriété "name" sur null dans D:BelajarProgramCODINGANLaravelapplicationcoba-laraveleval() 'd code.</code></p>
<p>(édité</p>
<p>Lorsque le nom de la fonction Eloquent est "category", "Post::first()->category" renvoie la catégorie du message. Cependant, lorsque j'essaie de changer le nom de la fonction en "catégories" et d'y accéder en utilisant "Post::first()->categories", il renvoie null. </p>
<p>)</p>
<p>J'ai essayé de changer le nom de la fonction associée Eloquent dans le modèle de classe de catégorie en un nom aléatoire, mais je peux toujours y accéder et Laravel ne signale aucune erreur. Le code du modèle de classe de catégorie est le suivant : </p>
<pre class="brush:php;toolbar:false;"><?php
Modèles d'application d'espace de noms ;
utilisez IlluminateDatabaseEloquentFactoriesHasFactory ;
utilisez IlluminateDatabaseEloquentModel ;
La catégorie de classe étend le modèle
{
utilisez HasFactory ;
protégé $gardé = ['id'];
messages de fonction publique(){
return $this->hasMany(Post::class);
}
}</pré>
<p>Quelqu’un peut-il m’aider ? Pourquoi puis-je changer le nom de la fonction Eloquent dans le modèle de classe de catégorie mais pas dans le modèle de classe de publications ? </p>
Procédez comme suit devrait résoudre le problème :