Как решить Ошибка типа: Аргумент 1, переданный в Rinvex\Repository\Repositories\EloquentRepository::findWhereNotIn(), должен иметь тип array?

Мой запрос такой:

$this->user_repository->findWhereNotIn('id', [1, 2, 3, 4]);

При выполнении возникает такая ошибка:

[Symfony\Component\Debug\Exception\FatalThrowableError] Ошибка типа: Аргумент 1, переданный в Rinvex\Repository\Repositories\EloquentRepository::findWhereNotIn(), должен иметь тип array, заданная строка, вызываемая в C:\xampp\htdocs\myshop \app\Console\Commands\Check.php в строке 48

В то время как в руководстве https://github.com/rinvex/repository#findwherenotin это выглядит вроде мой запрос правильный

Как я могу это решить?


person moses toh    schedule 02.03.2017    source источник
comment
Argument 1 относится к тому, что id не является массивом   -  person Machavity♦    schedule 02.03.2017
comment
попробуйте вместо этого использовать ['id']   -  person Onix    schedule 02.03.2017
comment
@Оникс, не работает. Существует ошибка: [ErrorException] Invalid argument supplied for foreach()   -  person moses toh    schedule 02.03.2017
comment
@Machavity, я меняю так: $this->user_repository->findWhereNotIn(['id'], [1, 2, 3, 4]);, но это не работает   -  person moses toh    schedule 02.03.2017
comment
Разве не должно быть whereNotIn вместо findWhereNotIn? laravel.com/docs/5.4/queries#where-clauses   -  person Michael Kunst    schedule 02.03.2017
comment
@Michael Kunst, я использую репозиторий rinvex. Так что whereNotIn не работает   -  person moses toh    schedule 02.03.2017


Ответы (1)


Вы передаете имя столбца в виде строки в первом параметре, затем значения в виде массива во втором параметре, а правильный синтаксис для rinvex/repository findWhereNotIn согласно документам передает имя столбца и значения первому параметру в виде ассоциативного массива следующим образом:

$repository->findWhereNotIn(['id', [1, 2, 5, 8]]);

Обратите внимание, как они проходят: ['id', [1, 2, 5, 8]]

person Omranic    schedule 04.03.2017
comment
Возможно ты можешь помочь мне. Посмотрите на это: stackoverflow.com/questions/43326809/ - person moses toh; 10.04.2017