Laravel Seeder Class и 3-й элемент в массиве дает исключение

Я заполняю таблицу [skills], но получаю сообщение об ошибке в консоли, и оно такое расплывчатое. Если вы проверите, ничего полезного на самом деле. Просто исключение.

введите здесь описание изображения

Данные, которые я пытаюсь разместить, имеют вид string и images, поэтому, естественно, столбец, который принимает image, является BLOB.

Инструментальные средства MySQL:

введите здесь описание изображения

Как ни странно, вы можете видеть, что некоторые исходные данные прошли (HTML и CSS). Эти файлы изображений хранятся в хранилище /storage/app/images/skills/MY_IMAGE_FILE.png.

Я убедился, что это не опечатка в PATH, поэтому что-то должно быть не так с файлом, но этот javascript /storage/app/images/skills/javascript_logo.jpg, 3-й в массиве — это место, куда выбрасывается заполнение исключение.

Это массив, который я пытаюсь засеять. Как видите, третий элемент массива не работает.

SkillsSeeder.php*

введите здесь описание изображения

Чтобы проверить, поврежден ли третий файл. Я попытался запустить файл прямо в моем файле просмотра.

<img src="data:image/png;base64, {{ base64_encode(file_get_contents(storage_path('app/images/skills/javascript_logo.jpg'))) }}" />

но он правильно отображается в браузере. Так что это должен формат. Я попытался изменить его на .png. По-прежнему возникает ошибка заполнения, но если она отображается непосредственно в представлении, она работает.

На данный момент я уверен, что:

  1. Файл изображения в порядке.
  2. Путь к хранилищу правильный.
  3. Формат файла НЕ является проблемой.

Мои предположения:

  1. Что-то не так с сеялкой, но почему у меня была другая таблица с теми же столбцами (varchar и BLOB) с точки зрения типа данных и класса сеялки, которая использует точно такие же методы, но это не дает сбоев. Та и эта сеялка практически идентичны.

Извините за упаковку тонн изображений, но это последнее изображение - просто сеялка.

SkillsSeeder.phpвведите здесь описание изображения

Я действительно смущен тем, почему 3-е семя терпит неудачу. Как раз 3-й.


person Shu Pesmerga    schedule 03.04.2020    source источник
comment
Я попытался жестко запрограммировать 8 различных путей к изображениям для всех записей. 2 из 8 вызывают ошибки. сравниваемые свойства изображений, вызывающих ошибки, на данный момент имеют значительный размер (66 КБ и 80 КБ против 44 КБ [без ошибок]). Это определенно размер. Я мог бы увеличить столбец с BLOB до MEDIUMBLOB или уменьшить размер файла ниже 65 КБ.   -  person Shu Pesmerga    schedule 04.04.2020


Ответы (1)


Ограничение размера BLOB составляет 65 КБ, следует использовать только MEDIUMBLOB. Теперь построитель Laravel Schema не поддерживает MEDIUMBLOB. Вы проверяете это, как добавить MEDIUMBLOB

https://www.256kilobytes.com/content/show/500/laravel-how-to-create-a-database-field-of-the-types-mediumblob-longblob-and-other-data-типы-не-явно-поддерживаемые-схемой-фасадом

person Shu Pesmerga    schedule 04.04.2020