Ich habe eine Datenbank, die mit einer Nachrichten- und einer Nachrichtenkategorien-Tabelle dargelegt wird.Laravel | Eloquent Ausländische Daten bevölkern
Ich habe Nachrichten, die eine Kategorie 1 hat, die auf einen Fremdschlüssel der Kategorien Tabelle verweist, wo der Kategoriewert gleich der ID in den Kategorien Tabelle ist.
Ich versuche, einen Controller zu machen, der den Kategorienamen anstelle der Kategorie ID erhält, wenn die Ergebnisse als JSON-Antwort zurückgegeben werden.
Bisher habe ich diese innerhalb eines Modells:
public function category()
{
return $this->belongsTo(NewsCategories::class);
}
Und dann mache ich diese innerhalb eines Controllers:
public function index()
{
$news = new News();
$news = $news->category()->get();
return response()->json(['data' => $news], 200);
}
Aber die JSON-Antwort, die zurückgegeben wird ist leer. Ich habe einige Dinge gegooglet, aber habe wirklich nichts nützliches gefunden, das ausländische Feld zu erhalten, das Titel innerhalb der Kategorien-Tabelle ist.
Dies ist die Antwort, dass ich
{
data: [ ]
}
Damit gibt es die Kategorie ID anstelle des eigentlichen Titels – tallent123
Wie bereits im anderen Kommentar erwähnt, $ News = News :: mit ('Kategorie') -> mit ('Benutzer') -> bekommen(); 'scheint zu funktionieren, gibt es eine andere Möglichkeit, dies zu schreiben? – tallent123
Das liegt daran, dass Sie das Beziehungsmodell [$ news -> category() -> get() 'stattdessen [abfragen] (https://laravel.com/docs/5.5/eloquent-relationships#querying-relations) des Zugriffs auf den Titel mit '$ news -> category -> title'. – sepehr