Angeblich leere Property, dabei ist sie vorhanden

  • Hallöchen,

    das Problem begleitet mich jetzt schon länger, eine Lösung finde ich jedoch nicht dafür.
    Es kommt immer wieder vor das einige (vor allem durch Migration übertragene) Einträge in meiner App einen Fehler auslösen: Attempt to read property "filename" on null

    Wo das ganze passiert, ist auch recht einfach herausgefunden:

    Würde hier ja tatsächlich aber schon das zuvorgehende Property files leer sein, müsste er mir das Standard-Bild ausgeben.
    Daran hab ich natürlich auch gedacht, und einfach mal einen der betroffenen Einträge via Tinker mir angeschaut:

    Auffällig für mich ist, das es hier nun scheinbar keine Probleme gibt mir letztendlich image_url zu erzeugen. Die gesuchte Datei ist ja auch vorhanden :/.
    Und lasse ich in besagter Funktion mir zuvor files in den Log schreiben... ja dann steht das sogar im Log das es da ist.


    Jemand eine Idee diesbezüglich?

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

  • Da es faktisch unmöglich ist das filename nichts hat (NOT NULL), und wie man sieht Zeile 18 ist der Dateiname vorhanden.

    Eine Änderung des Ternary Operators auf !is_null ($this->files->first()->filename ändert da bisher nichts.

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

  • Wozu ist die zusätzliche image_id

    Die image_id ist aus dem File-Model, damit man weiß zu welchem "Bild" es gehört (grundlegend kann ein Bild mehrere Dateien haben)

    Vielleicht mal so ausprobieren.

    Code
    public function getImageUrlAttribute(): string
        {
            $file = $this->files()->first();
    
            return $file ? Storage::disk('public')->url('files/show/' . $file->filename . '.webp') : $this->defaultImage();
        }

    Das ändert nichts am Problem.

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

    Einmal editiert, zuletzt von Syntafin (4. Januar 2025 um 14:10)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!