Аргумент 1 передан, должен иметь тип массива, задана строкаPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Аргумент 1 передан, должен иметь тип массива, задана строка

Сообщение Гость »


Я работаю с Laravel 5.8 и создал страницу для просмотра всех загруженных файлов, которые хранятся в таблице media_library.

И все данные я получаю так:

публичная функция __construct(MediaLibraryRepository $mediaLibraryRepoObject) { $this->mediaLibraryRepoObject = $mediaLibraryRepoObject; } индекс публичной функции() { $res = $this->mediaLibraryRepoObject->select(); $media = $res["медиа"]; $files = $res["файлы"]; $расширения = [ «jpg», «png», «bmp», «gif», «jfif», «mp4», «mkv», «flv», «mov», «avi», «wmv», «mp3», «pdf» ', 'doc', 'docx', 'pptx', 'xls', 'xlsx', 'zip', 'rar' ]; return view('admin.mediaLibrary.index', Compact('media','files', 'extensions')); } Как вы можете видеть, я вызвал репозиторий здесь, а в методе index() я вызвал метод select() этого репозитория, который находится здесь:
р>
публичная функция select() { $media = MediaLibrary::where('med_dimension', 'full'); if (request()->has('mediaType') && request('mediaType') != "") $media = $media->whereIn('med_extension', request('mediaType')); if (request()->has('fileName') && request('fileName') != "") $media = $media->whereIn('med_name', request('fileName')); $media = $media->latest()->paginate(15); $files = []; foreach ($media as $key=>$value) { $files[$key]['med_name'] = $value->med_name; $files[$key]['med_group'] = $value->med_group; $files[$key]['med_size'] = $value->med_size; $files[$key]['med_extension'] = $value->med_extension; foreach (MediaLibrary::where('med_group', $value->med_group)->get() as $val) { $files[$key]['path'][$val->med_dimension] = $val->med_path; } } return ["files"=>(объект) $files,"media"=>$media]; } Поэтому мне нужно было добавить форму поиска в Blade для поиска по именам файлов, поэтому я попробовал этот код:

if (request()->has('fileName') && request('fileName') != "") $media = $media->whereIn('med_name', request('fileName')); Но это выдает мне следующую ошибку:

Аргумент 1, передаваемый в Illuminate\Database\Query\Builder::cleanBindings(), должен иметь тип массива, заданную строку, вызываемую

Так что же здесь не так? Как я могу решить эту проблему?

А вот моя форма:
Тип файла: Выбрать @foreach($extensions как $ext) has('mediaType') && request('mediaType') != "") @foreach(request()->query('mediaType') как $f) @if($ext == $f) выбрано @endif @endforeach @endif > {{ $ext }} @endforeach Имя файла: Поиск
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»