@kip_34
Хороший

Как сделать фильтр laravel?

Пытаюсь реализовать фильтр по трем параметрам.
View:
{{ Form::open(['route' => ['roll.index', 'method' => 'GET']]) }}
        {{ Form::token() }}
        <div class="input-group col-md-9">
            {{ Form::select('catalog_id', \App\Models\Catalog::pluck('label','id'), null, ['placeholder' => 'Выберите каталог...', 'class' => 'form-control'])}}
            {{ Form::select('category_id', \App\Models\RollCategory::pluck('label','id'), null, ['placeholder' => 'Выберите категорию...', 'class' => 'form-control'])}}
            {{ Form::select('picture_id', \App\Models\RollPicture::pluck('label','id'), null, ['placeholder' => 'Выберите направление рисунка...', 'class' => 'form-control'])}}
            <div class="input-group-append mb-3">
                {{ Form::submit('Применить', ['class' => 'btn btn-primary']) }}
            </div>
        </div>
        {{ Form::close() }}

Scope в модели:
public function scopeFilter($query)
    {
        if(request('catalog_id'))
        {
            $query->where('catalog_id', request('catalog_id'));
        }
        if(request('category_id'))
        {
            $query->where('category_id', request('category_id'));
        }
        if(request('picture_id'))
        {
            $query->where('picture_id', request('picture_id'));
        }
        return $query;
    }

Далее я пытаюсь вывести результаты в index, но запрос отправляется как insert
public function index(Request $request)
    {
        $rolls = RollStorage::with(['catalog', 'category', 'picture'])->filter()->paginate('10');
        return view('admin.storage.roll.index', compact('rolls'));
    }
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'category_id' cannot be null (SQL: insert into `roll_storages` (`catalog_id`, `category_id`, `picture_id`, `updated_at`, `created_at`) values (1, ?, ?, 2019-10-21 19:15:07, 2019-10-21 19:15:07))

Наверное, нельзя использовать один метод, как тогда сделать иначе и оптимальнее?
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
@kip_34 Автор вопроса
Хороший
Разобрался сам
{{ Form::open(['route' => 'roll.index', 'method' => 'GET']) }}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы