Когда вы определяете отношение belongsToMany
, которое определяет отношение для данной Категории. Но, позвонив по номеру Category::products()...
, вы еще не сказали, для какой категории вы хотите получить продукты.
Там вы можете сделать $category = Category::find($category_id)
, чтобы получить категорию, а затем получить продукты для этой категории, выполнив $category->products
. Конечно, вы можете перейти непосредственно к таким продуктам: Category::find($category_id)->products
.
Если вы позвоните ->products
, вы получите результат сбора продуктов. Если вы вызываете его с круглыми скобками ->products()
, вы получаете обратно класс запросов БД, который затем позволяет вам добавить дополнительные методы запроса, такие как: ->products()->where('id', $product_id)->get()
.
Так что я думаю, что вы могли просто поставить ->find($id)
после ->products()
вместо ранее.