首页 > 解决方案 > 我如何避免此错误尝试获取非对象的属性“id”?

问题描述

我有这个索引功能来显示我的酒店:

public function index()
{
        $myhotels = hotel::where('created_by',Auth::user()->id)->first();
        $reservations = Reservation::where('hotel_id',$myhotels->id)->get();
        return view('moderateur/reservation',compact('reservations'));
}

但是当没有酒店时我收到了这个错误Trying to get property 'id' of non-object

试试这个,但还是一样

public function index()
{
    $myhotels = hotel::where('created_by',Auth::user()->id)->first();
    if (!hotel::where('created_by',Auth::user()->id)->exists()){
        $reservations = Reservation::where('hotel_id',$myhotels->id)->get();
        return view('moderateur/reservation',compact('reservations'));
    }
    return view('moderateur/reservation');
}

我该如何解决这个问题:(?当没有酒店时,我想显示“没有酒店”

标签: laravellaravel-7

解决方案


在执行其余代码或 firstOrFail() 之前检查对象是否为空。

例如。

public function index()
{
    ...
    if (!empty($myhotels) {
      ...    
      return view('moderateur/reservation');
    }
}

推荐阅读