Eigentum Property Property [title] does not exist on this collection instance does not exist on this collection instance ist in dieser Sammlungsinstanz nicht vorhanden
Eigentum Property Property [title] does not exist on this collection instance does not exist on this collection instance ist in dieser Sammlungsinstanz nicht vorhanden. (Ansicht: E:\laragon\www\newsite\resources\views\about.blade.php)
Aber wenn ich die Abrufmethode in der Controller-Datei ändere, funktioniert es.
public function index()
{
$about = Page::find(3);
return view('about', compact('about'));
}
Wenn ich benutze dd($about) im ersten Fall (where()->get()) werden die Daten von einem Array gekapselt. Im zweiten Fall (find(3)) zeigt es Daten wie erwartet an.
Was mache ich falsch?
Alexey Mezenin
Wenn Sie verwenden get() du bekommst ein Sammlung. In diesem Fall müssen Sie darüber iterieren, um Eigenschaften zu erhalten:
@foreach ($collection as $object)
{{ $object->title }}
@endforeach
Oder Sie könnten einfach eines der Objekte anhand seines Index abrufen:
{{ $collection[0]->title }}
Oder holen Sie sich das erste Objekt aus der Sammlung:
{{ $collection->first() }}
Wenn Sie verwenden find() oder first() du bekommst ein Objektsodass Sie Eigenschaften mit einfachem abrufen können:
{{ $object->title }}
ja, nach dem Ausführen von Model->get() eine Liste mit einem Objekt erhalten, aus diesem Grund immer Daten anzeigen und ich kann nicht darauf zugreifen. Nach exexute first() dann Objekt abrufen
– Rubén Ruíz
26. Oktober 2018 um 17:42 Uhr
Nach 4 STUNDEN des Suchens, Lesens und Testens der Laravel-Dokumentation und des Besuchs vieler StackOverflow-Fragen/Antworten waren Sie der einzige, der erwähnte, dass get() eine Sammlung abruft. Sie waren es, die mich dazu gebracht haben, vom Stuhl aufzuspringen und zu erkennen, dass alle meine Fragen richtig waren. Das Problem lag beim “Drucken”. Von ganzem Herzen ein großes Dankeschön für diese Antwort! Ich meine es ernst!
– Grinx.
20. August 2020 um 18:18 Uhr
Beste Erklärung überhaupt
– Quecksilber
9. Januar um 16:49 Uhr
Alex
Mit get() Methode erhalten Sie eine Sammlung (alle Daten, die der Abfrage entsprechen), versuchen Sie zu verwenden first() Stattdessen gibt es nur ein Element zurück, etwa so:
Während dies die Frage des Autors beantworten könnte, fehlen einige erklärende Worte und / oder Links zur Dokumentation. Raw-Code-Snippets sind ohne einige Phrasen um sie herum nicht sehr hilfreich. Es kann auch sehr hilfreich sein, wie man eine gute Antwort schreibt. Bitte bearbeiten Sie Ihre Antwort – Aus Bewertung
– Nick
17. Januar 2019 um 4:00 Uhr
Eine Person könnte dies beim Arbeiten mit Factory-Funktionen erhalten, daher kann ich bestätigen, dass dies eine gültige Syntax ist:
Sie sollten das Sammlungsschlüsselwort im Controller verwenden. Wie hier..
public function ApiView(){
return User::collection(Profile::all());
}
Hier ist der Benutzer der Ressourcenname und das Profil der Modellname. Danke.
Onyash Ed
$about->first()->id oder $stm->first()->title und dein Problem ist gelöst.
Als Ergebnis $about = Page::where('page', 'about-me')->get() ist eine Laravel-Sammlung, Sie können ein bestimmtes Attribut wie erhalten Titel verwenden pluck() Methode, die in beschrieben ist https://laravel.com/docs/master/collections#method-pluck.
9877500cookie-checkEigentum Property Property [title] does not exist on this collection instance does not exist on this collection instance ist in dieser Sammlungsinstanz nicht vorhandenyes