Я столкнулся с проблемой сохранения данных с помощью красноречия сразу после переименования имени столбца базы данных.
Имя столбца было изменено внутри миграции. Миграция была выполнена, и теперь имя в базе данных в порядке.
В модели имя столбца также было изменено на новое имя. Но по какой-то причине, когда я пытаюсь вставить новую запись в базу данных, Laravel жалуется на имя столбца, пытается использовать старое имя вместо нового имени.
В настоящее время я использую PHP 7 с Laravel 5.8 и Postgres в качестве базы данных. Моя среда работает на докере.
Я уже пытался очистить кеш, но это не решило мою проблему. Также был выполнен дамп-автозагрузка Composer, но ничего не изменилось.
Это ошибка:
Illuminate \ Database \ QueryException (42703)
SQLSTATE[42703]: Undefined column: 7 ERROR: column "name" does not exist LINE 1
Важно сказать, что я использую Laravel Backpack.
Хотя вы обновили свою модель с новым именем столбца, все еще возможно, что ваш код все еще содержит запросы к старому столбцу. Я рекомендую использовать константы в вашей модели. Таким образом, вы можете ссылаться на эти константы при выполнении запроса, и вам не нужно беспокоиться о фактическом имени столбца.






Иногда это возможно из-за проблем с кешем, поэтому предпочтительнее запустить следующие пять команд после того, как вы внесете некоторые изменения в файл миграции или env, а Laravel не работает должным образом. Вот полное объяснение: https://thewikihow.com/video_Q1ynDMC8UGg
php artisan config:clear
php artisan cache:clear
composer dump-autoload
php artisan view:clear
php artisan route:clear
Пожалуйста, попробуйте это и посмотрите, сработает ли это после.
Это было решением. Но для работы необходимо было запускать команды внутри контейнера докеров.
обычно из командной строки в корне проекта у меня работает нормально. В любом случае, я рад, что это сработало для тебя
Обновите свою модель, а также попробуйте использовать свободный запрос для тестирования, например:
DB::table('users')->insert(array('name'=>'xyz'));
Пожалуйста, покажите код, который у вас есть, где вы вставляете новую запись.