首页 文章

防止关系对象和关系id与父模型一起返回

提问于
浏览
1

我有一个模型 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');
    }
}

那些2 "hasOne"模型中没有定义逆"belongsTo" . 这是因为那些表( sitesprocess_codes )不知道缺陷报告是什么 .

当我从数据库中检索 DefectReport 的实例时,我得到了关系的"id"列以及关系对象 . 有没有办法得到JUST关系对象?

例如,当我打电话时:

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”和“site”都在那里?我怎么能阻止这个?

1 回答

  • 2

    在你的 DefectReport 模型中添加:

    protected $hidden = array('site_id', 'process_code_id');
    

    Eloquent检查$ hidden 属性以标识在序列化Object时不应返回的任何属性 .

相关问题