Промежуточным решением оказалось использование атрибута.
Необходимо что-бы формат для
multipleSelect(и прочих) был в формате массива [1,2,3 ... ,7].
При обычной связи передается
массив вида{
['id' => 1,
'name' => 'Moscow',
...
],
['id' => 2,
'name' => 'Ekb',
...
],
}
Поэтому, для формализации я использовал сторонний атрибут "
Cities" к модели "
Promo".
Конечный код...
//Add extra attribute
//These attributes will be written to the database, if you do not want this, then do not advertise!
//protected $attributes = ['cities'];
//Make it available in the json response
protected $appends = ['cities'];
public function getCitiesAttribute()
{
return $this->locations->pluck('id');
}
public function setCitiesAttribute($value)
{
$this->locations()->sync($value);
}
Если, есть другие предложения, я готов выслушать.