Nom de la fonction associée Laravel Eloquent
P粉729198207
P粉729198207 2023-07-23 17:45:15
0
1
399
<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>
P粉729198207
P粉729198207

répondre à tous(1)
P粉330232096

Procédez comme suit devrait résoudre le problème :

public function categories()
{
    return $this->belongsTo(Category::class, 'category_id', 'id');
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal