Ich habe zwei Tabellen, nämlich „Beiträge“ und „Kategorien“. Die Beziehung zwischen „Beiträgen“ und „Kategorien“ ist n:1. Daher lautet der Code im Klassenmodell „Post“ wie folgt:
belongsTo(Category::class); } }
Mit diesem Code wird die Anwendung erfolgreich ausgeführt.
Das Problem entsteht, wenn ich versuche, den Namen der Kategoriefunktion in „Kategorien“ zu ändern und auf den Kategorienamen des Beitrags wie folgt zuzugreifen:
Post::first()->categories->name
, laravel gibt einen Fehler wie diesen aus Versuch, die Eigenschaft „name“ auf null in D:BelajarProgramCODINGANLaravelapplicationcoba-laraveleval() zu lesen 'd code.
(bearbeitet
Wenn der Name der Eloquent-Funktion „category“ lautet, gibt „Post::first()->category“ die Kategorie des Beitrags zurück. Wenn ich jedoch versuche, den Funktionsnamen in „Kategorien“ zu ändern und mit „Post::first()->categories“ darauf zuzugreifen, wird null zurückgegeben.
)
Ich habe versucht, den Namen der Eloquent-assoziierten Funktion im Kategorieklassenmodell in einen zufälligen Namen zu ändern, aber ich kann immer noch darauf zugreifen und Laravel meldet keine Fehler. Der Code des Kategorieklassenmodells lautet wie folgt:
hasMany(Post::class); } }
Kann mir jemand helfen? Warum kann ich den Eloquent-Funktionsnamen im Kategorieklassenmodell ändern, aber nicht im Postklassenmodell?
进行以下操作应该可以解决问题: