2015-10-23 110 views
0

下面一直困扰着我。laravel关系返回null

UPDATE

我,首先发布这并不意味着张贴代码。我更新了代码。请看一下。

的表称为

$table->increments('id'); 
$table->integer('equipment_status_code_id')->unsigned(); 
$table->foreign('equipment_status_code_id')->references('id')->on('equipment_status_codes')->onDelete('cascade')->onUpdate('cascade'); 

和型号

public function equipmentStatusCode() 
{ 
    return $this->belongsTo('App\Models\EquipmentStatusCode'); 
} 

EquipmentStatusCode

public function plate() 
    { 
     return $this->hasOne('App\Models\Plate'); 
    } 

在路线我这样做

$data = Plate::find(1); 
    $att = $data->equipmentStatusCode; 

    dd($att); 

而且工作得很好。

周围的其他方法将无法正常工作,并返回

$data = EquipmentStatusCode::find(1); 
$att = $data->plate; 

dd($att); 

有人告诉我这是怎么回事?

回答

1

BelongsTo关系的模型应具有foreign key in its table。你有相反的方向。所以只需交换关系。

板,型号:

public function equipmentStatusCode() 
{ 
    return $this->hasOne('App\Models\EquipmentStatusCode'); 
} 

EquipmentStatusCode型号:

public function plate() 
{ 
    return $this->belongsTo('App\Models\Plate'); 
}