我有两个数据表,它们之间通过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());
}
您必须在字段前面指出表的名称。
型号地点代码:
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);
}
在排除中,跳过所有不需要显示的字段。