У меня есть следующие красноречивые модели (удаленный код, чтобы облегчить эту проблему).Я пытаюсь получить первое изображение
class Design extends Model
{
use SoftDeletes;
protected $guarded = ['id','tags','keywords'];
public function images()
{
return $this->hasMany(DesignImage::class);
}
...
}
class DesignImage extends Model
{
use SoftDeletes;
public function design()
{
return $this->belongsTo(Design::class);
}
}
Затем у меня есть следующий код, который передается шаблону лезвия
$data['designs'] = Design::where('quantity','>',0)->get();
return view('mailings.form',$data);
Template (Работает нормально; я получаю имя для всехimages
@foreach($design->images as $image)
{{ $image->name }}
@endforeach
Но если я попытаюсь
{{ $design->images->first()->name }}
Я получу Попытка получить свойство 'name' не-объекта`
Если я попытаюсь
{{ $design->images[0]->name }}
Я получаю неопределенное смещение: 0
Однако, если я сделаю
@json ($design->images->first())
, я получу (действительный)
{"id": 1, "name":" Image 1 Design 1 "," thumb ":" images / main_thumb.jpg "," image ":" images / main_large.jpg "," design_id ": 1," creation_at ":" 2018-12-11 20: 10: 03 "," updated_at ":" 2018-12-11 20:10:03 "," delete_at ": null}
Как получить первое изображение в шаблоне блейда? Почему яполучить этот странный вывод?