从具有所属关系的laravel api获取额外字段

问题描述 投票:0回答:1

我有两个数据表,它们之间通过belongestomany关系相互关联。当我仅选择两个列键['id','title']从其api控制器获取数据时,它在响应对象中返回了一些额外的数据。

[model code:

public function place(){

    return $this->belongsToMany(Place::class,'city_place')->select(array('id', 'title'));

}

[controller代码:

public function ofcity($id)
{
    $city=City::findOrFail($id);
    return new CityResource(  $city->place()->get());

}

enter image description here

laravel laravel-5 laravel-4
1个回答
0
投票

您必须在字段前面指出表的名称。

型号地点代码:

protected $columns = ['places.id', 'places.title']; //all column for select

public function scopeExclude($query, $value = [])
{
    return $query->select(\array_diff($this->columns, (array) $value));
}

示范城市代码:

public function place()
{        
     return $this->belongsToMany(Place::class,'city_place', 'city_id', 'place_id');        
}

控制器代码:

public function ofcity($id)
{
    $cities = City::findOrFail($id)->place()->exclude(['featured_image'])->get()->toArray();
    return response()->json(['cities' => $cities], 200);    
}

在排除中,跳过所有不需要显示的字段。

© www.soinside.com 2019 - 2024. All rights reserved.