Laravel Backpack - Eloquent пытается вставить данные в неправильное имя столбца после переименования столбца базы данных

Я столкнулся с проблемой сохранения данных с помощью красноречия сразу после переименования имени столбца базы данных.

Имя столбца было изменено внутри миграции. Миграция была выполнена, и теперь имя в базе данных в порядке.

В модели имя столбца также было изменено на новое имя. Но по какой-то причине, когда я пытаюсь вставить новую запись в базу данных, 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.

Пожалуйста, покажите код, который у вас есть, где вы вставляете новую запись.

Rwd 22.07.2019 13:35

Хотя вы обновили свою модель с новым именем столбца, все еще возможно, что ваш код все еще содержит запросы к старому столбцу. Я рекомендую использовать константы в вашей модели. Таким образом, вы можете ссылаться на эти константы при выполнении запроса, и вам не нужно беспокоиться о фактическом имени столбца.

Bram Verstraten 22.07.2019 13:39
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
490
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Иногда это возможно из-за проблем с кешем, поэтому предпочтительнее запустить следующие пять команд после того, как вы внесете некоторые изменения в файл миграции или 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

Пожалуйста, попробуйте это и посмотрите, сработает ли это после.

Это было решением. Но для работы необходимо было запускать команды внутри контейнера докеров.

RSander 23.07.2019 02:15

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

Abhay Maurya 23.07.2019 08:35

Обновите свою модель, а также попробуйте использовать свободный запрос для тестирования, например:

DB::table('users')->insert(array('name'=>'xyz'));

Другие вопросы по теме