Laravel 5 试图获得财产';RmFName';非对象

Laravel 5 试图获得财产';RmFName';非对象,laravel-5,eloquent,Laravel 5,Eloquent,我得到以下错误: “正在尝试获取非对象的属性” 以下是DB: roomfloor -RmFID (PK) -RmFName (FK) roomtype -RmTypeID (PK) -RmTypeBed -RmTypeRent -RmFName (FK) 以下是我的代码: 型号: class RoomType extends Model { protected $primaryKey = 'RmTypeID'; protected $table = 'roomtype';

我得到以下错误:

“正在尝试获取非对象的属性”

以下是DB:

roomfloor
-RmFID (PK)
-RmFName (FK)
roomtype
-RmTypeID (PK)
-RmTypeBed 
-RmTypeRent 
-RmFName (FK)
以下是我的代码:

型号:

class RoomType extends Model
{
    protected $primaryKey = 'RmTypeID';
    protected $table = 'roomtype';
    protected $fillable = ['RmTypeID','RmTypeBed','RmTypeRent','RmFName'];
    public function roomfloors(){
   return $this->belongsTo(RoomFloor::class,'RmFName','RmFName');
    }
}


class RoomFloor extends Model
{
    protected $primaryKey = 'RmFID';
    public $timestamps = false;
    protected $table = 'roomfloor';
    protected $fillable =['RmFID','RmFName'];
    public function roomtypes(){
            return $this->hasOne(RoomType::class,'foreign_key', 'RmFName');
    }
}


public function index()
{
    $roomtype = RoomType::with('roomfloors')->get();
    return view('roomtype.index',[
        'roomtypes'=>$roomtype
    ]);
}
@foreach ($roomtypes as $roomtype)
    <tr>
        <td>{{ $roomtype->RmTypeID}}</td>
        <td>{{ $roomtype->RmTypeBed}}</td>
        <td>{{ $roomtype->RmTypeRent}}</td>
        <td>{{ $roomtype->roomfloor->RmFName }}</td>
    </tr>
@endforeach
模板:

class RoomType extends Model
{
    protected $primaryKey = 'RmTypeID';
    protected $table = 'roomtype';
    protected $fillable = ['RmTypeID','RmTypeBed','RmTypeRent','RmFName'];
    public function roomfloors(){
   return $this->belongsTo(RoomFloor::class,'RmFName','RmFName');
    }
}


class RoomFloor extends Model
{
    protected $primaryKey = 'RmFID';
    public $timestamps = false;
    protected $table = 'roomfloor';
    protected $fillable =['RmFID','RmFName'];
    public function roomtypes(){
            return $this->hasOne(RoomType::class,'foreign_key', 'RmFName');
    }
}


public function index()
{
    $roomtype = RoomType::with('roomfloors')->get();
    return view('roomtype.index',[
        'roomtypes'=>$roomtype
    ]);
}
@foreach ($roomtypes as $roomtype)
    <tr>
        <td>{{ $roomtype->RmTypeID}}</td>
        <td>{{ $roomtype->RmTypeBed}}</td>
        <td>{{ $roomtype->RmTypeRent}}</td>
        <td>{{ $roomtype->roomfloor->RmFName }}</td>
    </tr>
@endforeach
@foreach($roomtype作为$roomtype)
{{$roomtype->RmTypeID}
{{$roomtype->RmTypeBed}
{{$roomtype->RmTypeRent}
{{$roomtype->roomfloor->RmFName}
@endforeach

在调用模板之前,请在模板中签入
RmFName

@foreach ($roomtypes as $roomtype)
    <tr>
        <td>{{ $roomtype->RmTypeID}}</td>
        <td>{{ $roomtype->RmTypeBed}}</td>
        <td>{{ $roomtype->RmTypeRent}}</td>
        @if($roomtype->roomfloor)
        <td>{{ $roomtype->roomfloor->RmFName }}</td>
        @else
        <td>No thing found</td>
        @endif
    </tr>
@endforeach
@foreach($roomtype作为$roomtype)
{{$roomtype->RmTypeID}
{{$roomtype->RmTypeBed}
{{$roomtype->RmTypeRent}
@如果($roomtype->roomfloor)
{{$roomtype->roomfloor->RmFName}
@否则
什么也没找到
@恩迪夫
@endforeach

ORM关系中断时会出现此错误。 方法 1.签出这两个表如果另一个表中缺少一个RmFName,那么它将破坏属性,并出现此错误。 所以,您可以检查第二个表中存在于外键RmFName的其他表中的所有记录。 2.如果其中一条记录丢失,那么它的错误就来了