Laravel 5 试图获得财产';RmFName';非对象
我得到以下错误: “正在尝试获取非对象的属性” 以下是DB: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';
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.如果其中一条记录丢失,那么它的错误就来了