В моем проекте я установил несколько отношений, таких как:
Модель
public function foo()
{
return $this->hasMany(Bar::class);
}
public function fooSold()
{
return $this->hasMany(Bar::class)->where('sold', 1);
}
Контроллер
public function show()
{
$bar = Bar::with('foo')->first();
return new BarResource($bar);
}
public function showSold()
{
$bar = Bar::with('fooSold')->first();
return new BarResource($bar);
}
Ресурс
public function toArray($request)
return [
...
'foo' => Foo::collection($this->whenLoaded('foo')),
]
Возврат первой функции в моем контроллере не проблема. Но как мне вернуть второй файл с тем же именем, что и 'foo' в моем ресурсе?
'foo' => Foo::collection($this->whenLoaded'fooSold')),
'foo' => Foo::collection($this->whenLoaded'foo')),
Это работает, но не похоже на правильный способ сделать это, так как у вас два одинаковых ключа массива.
Какой лучший способ сделать это?