$user->products()->whereSlug($slug);
- вот что я предложил изначально. И оно либо так, либо так же но в методе репозитория, никак по другому. public function scopeOfUserBySlug($query, $slug)
{
return $query->where('user_id', Auth::id())
->whereSlug($slug);
}
JsonResource
, сам по себе, вообще не хранит никаких данных кроме модели(ей), и только при вызове ->toArray()
он начинает двигатся и выдает результат в виде обычного массива. json_encode($productResource)
вместо json_encode($productResource->resolve())
или json_encode($productResource->toArray())
.:object="{{json_encode($product->toResource())}}"
- идеальный вариант. json_encode($product->toResource())
более лаконичный вариант с $product->toResource()->jsonSerialize()
ну либо $product->toResource()->resolve()
. Хотя в модели держать метод toResource - такое себе, ибо ресурсы работают и с коллекциями в том числе, а значит лучше использовать рекомендуемый способ, хоть и не такой красивый: (new ProductResource($product))->resolve()
- но это уже такое.jsonSerialize
, из соответствующего интерфейса, который вызывает resolve
. Попробуйте их оба, без response()->json()
, соответственно - ну так, чисто из интереса)