Eloquent 'hasOne' 同时选择 Id 和 id 后面的对象

在我的项目中,我有 2 个表:


我的超棒表


ID | NAME | SOMEMOREINFO | ...

我的第二张桌子


ID | MyAwesomeTable_ID | SOMEOTHERDATA

抱歉,格式很奇怪,但我不知道如何正确格式化 Stackoverflow 中的表格。


在我的 PHP 中,我有以下模型。


public class MySecondTable {

    ...


    public function awesomeTable() {

         return $this->hasOne('App\Models\MyAwesomeTable', 'id', 'MyAwesomeTable_ID');

    }

}

当我尝试使用MySecondTable以下代码获取 my 的条目时,生成的 JSON 包含MyAwesomeTable_IDAND 已解析awesomeTable。我怎样才能实现只得到解决awesomeTable,而不需要调用类似的东西removeColumns。


$entries = MySecondTable::with(['awesomeTable'])->get();

电话给我的是:


{

    ...

    'MyAwesomeTable_ID' : 1, // I Don't want this entry

    'awesomeTable' : {

        'id': 1,

        'name' : 'some name',

        ...

    }

}


ibeautiful
浏览 121回答 1
1回答

holdtom

如果您不希望某些内容出现在模型的默认选择列表中,请将该属性添加到$hidden该模型的数组中,public class MySecondTable {    // An array of properties that should not appear     // in the default select-list or JSON output    protected $hidden = ['MyAwesomeTable_ID'];     public function awesomeTable() {        // You can just define relation like this, the if you follow Laravel naming-conventions        return $this->hasOne(MyAwesomeTable::class);         // return $this->hasOne('App\Models\MyAwesomeTable', 'id', 'MyAwesomeTable_ID');    }}
打开App,查看更多内容
随时随地看视频慕课网APP