如果关系不存在,如何设置null?

时间:2017-03-29 14:28:55

标签: laravel laravel-5.4

在模型中我有:

public function publisher()
{
    return $this->belongsTo('App\User', 'user_id', 'id');
}

在模板刀片中,我尝试显示数据User

@foreach($announcement->offers as $key => $item)
    <img src="{{url($item->publisher->photo)}}">
@endforeach

问题是,如果User表中没有数据,程序会崩溃,因为我无法获取属性$item->publisher->photo

如何解决?

2 个答案:

答案 0 :(得分:3)

您可以这样做:

@if (empty($item->publisher))
    It's empty
@else
    <img src="{{ url($item->publisher->photo) }}">
@endif

答案 1 :(得分:-1)

在这里处理内存,但你可以使用@forelse / @empty。如果您迭代的对象为空,则可以使用这些指令:

@forelse($announcement->offers as $key => $item)
    <img src="{{url($item->publisher->photo)}}">
@empty
    //default image or message?
@endforelse

https://laravel.com/docs/5.4/blade#loops