Ohne Zeit zu verlieren.Laravel Blade-Vorlage - kann nicht in Beziehung zu bekommen, aber ich weiß, es ist von db gezogen und existiert
Ich habe Beziehungen
class Product extends Model
{
public function images() {
return $this->morphMany('App\Models\Image', 'imageable')->limit(1);
}
}
und Bildmodell
class Image extends Model
{
protected $appends = ['path', 'small', 'orginal', 'default'];
// ATTRIBUTES
public function getPathAttribute() {
return "uploaded/{$this->id}/";
}
public function getOrginalAttribute() {
return $this->path.'orginal.jpg';
}
public function getDefaultAttribute() {
return $this->path.'default.jpg';
}
public function getSmallAttribute() {
return $this->path.'small.jpg';
}
// RELATIONSHIPS
public function imageable() {
return $this->morphTo();
}
}
und im Hinblick i
$advert->images->first()->path
aber im immer Fehler zu machen versuchte:
Trying to get property of non-object
jedoch
, wenn ich diese Zeile dd()
, gibt es uploaded/5/
Früher hatte ich morphOne()
statt morphMany()
, aber der einzige Weg, es zu funktionieren scheint, ist es so, dass in foreach
Schleife zu setzen.
@foreach($advert->images as $image)
<img src="{{ asset($image->small) }}">
@endforeach
jetzt funktioniert es, aber wenn ich ohne foreach
Schleife in Bilder zu bekommen, sagt es der obige Fehler.
Um Fragen über eifrige Last zu vermeiden, habe ich es getan. Irgendwelche Hilfe?
hast du '$ advert-> images-> first()' versucht und was ist die Rückkehr. Der Fehler zeigt, dass Sie keine Eigenschaft von diesem Objekt haben. $ advert-> images-> first() ' – martiendt
das ist die ganze Magie im Versuch herauszufinden. 'first()' gibt das Image Model Objekt zurück !!! aber wenn ich darauf zugreife sagt es den obigen Fehler. Wenn ich ein Objekt hake, zeigt es mir '{" id ": 6," user_id ": 1," imagable_id ": 26," imageable_type ":" App \\ Models \\ Werbung "," created_at ":" 2016-06- 08 03:31:10 "," updated_at ":" 2016-06-08 03:31:10 "," Pfad ":" uploaded \/6 \/"," small ":" uploaded \/6 \/small .jpg "," orginal ":" uploaded \/6 \ /orginal.jpg "," Standard ":" uploaded \/6 \ /default.jpg "}'. Jetzt habe ich versucht, mit Array-Notation zu propery zu kommen und es funktioniert, scheint nur zu bekommen, wie ein Objekt das Skript bricht. Ich benutze Paginator BTW. –
so zusammenfassend: diese '$ advert-> images-> first()' funktioniert, diese '$ adverts-> first() -> images-> first() -> small' vor der Anzeigenschleife funktioniert auch, aber innerhalb der 'adverts' loop nur diese Arbeit' $ advert-> images-> first() ['small'] 'und' @foreach ($ advert-> images as $ image)
@ endforeach' Ich denke, es könnte etwas falsch mit Laravel sein, kann nichts anderes herausfinden. –