Я следую руководству по написанию 1 класса для фильтрации продуктов в приложении форума. Я получил эту ошибку в строке
$ Products = $ Category-> products-> filter ($ filter);
Аргумент 1, переданный в Illuminate \ Support \ Collection :: filter (), должен быть вызываемым или иметь значение null, объект задан, вызывается в ...
link = https://pineco.de/filtering-eloquent-queries-based-on-http-requests/
ProductsController с методом индекса:
public function listProduct(CategoryTranslation $category, ProductFilter $filter)
{
$Setting = Setting::first();
$Category = $category->base()->first();
// ORM ERROR Use filter <--
$Products = $Category->products->filter($filter);
return view($this->dir.'products', [
'Setting' => $Setting,
'Category' => $Category,
'Products' => $Products,
]);
}
Модель категории
public function products() {
return $this->belongsToMany(Products::class, 'category_products', 'category_id' ,'products_id')->where('status',true);
}
...
Модель продукта
public function category() {
return $this->belongsTo(Category::class);
}
public function Categories()
{
return $this->belongsToMany(Category::class, 'category_products','products_id', 'category_id');
}
...
Illuminate \ Support \ Collection :: filter ( )
public function filter(callable $callback = null)
{
if ($callback) {
return new static(Arr::where($this->items, $callback));
}
return new static(array_filter($this->items));
}