首页 > 解决方案 > 简单使用 Fouladgar 的 Eloquent Builder 类返回错误“它不是接口”

问题描述

我在创建一个简单的过滤器以使用 Eloquent Builder 类时遇到问题。将错误返回给我

App\EloquentFilters\Property\RoomsFilter 无法实现 Fouladgar\EloquentBuilder\Support\Foundation\Contracts\Filter - 它不是一个接口

基本上从如何开始复制粘贴

<?php
namespace App\EloquentFilters\Property;
use Fouladgar\EloquentBuilder\Support\Foundation\Contracts\Filter;
use Illuminate\Database\Eloquent\Builder;
class RoomsFilter implements Filter
{
    public function apply(Builder $builder, $value): Builder
    {
        return $builder->where('rooms', $value);
    }
}

谢谢大家的帮助

标签: laravelsearcheloquentadvanced-search

解决方案


正如错误所说,您需要扩展它,而不是实现它。

改变:

 class RoomsFilter implements Filter
{ }

class RoomsFilter extends Filter
{ }

来自gitHub 存储库

编写过滤器很简单。定义一个扩展Fouladgar\EloquentBuilder\Support\Foundation\Contracts\Filter 抽象类的类。这个类需要你实现一个方法:apply。


推荐阅读