我有一个模型DefectReport
:
class DefectReport extends Model
{
public function site()
{
return $this->hasOne(Site::class, 'id', 'site_id');
}
public function processCode()
{
return $this->hasOne(ProcessCode::class, 'id', 'process_code_id');
}
}
这两个"hasOne"模型没有反向的"belongsTo"定义。这是因为那些表(sites
和process_codes
)不知道什么是缺陷报告。
当我从数据库中检索DefectReport
实例时,我得到关系和关系对象的"id"列。是否有任何方法来获得关系对象?
例如,当我调用
return 'App'DefectReport::with(['site', 'processCode'])->findOrFail(1);
我得到以下JSON:
{
"id":1,
"site_id":1,
"process_code_id":1,
...other fields...
"created_at":"2015-07-17 19:51:45",
"updated_at":"2015-07-17 19:51:45",
"site": {
"id":1,
"location_code":"1",
"location_desc":"test",
"created_at":"2015-07-17 19:51:45",
"updated_at":"2015-07-17 19:51:45"
},
"process_code": {
"id":1,
"code":"999",
"description":"some process code",
"created_at":"2015-07-17 19:51:45",
"updated_at":"2015-07-17 19:51:45"
}
}
注意"site_id"answers"site"都有吗?我该如何预防呢?
在DefectReport模型中添加:
protected $hidden = array('site_id', 'process_code_id');
$hidden属性由Eloquent检查,以识别在Object序列化时不应该返回的任何属性。