PDOException::("SQLSTATE[42S22]: Столбец не найден: 1054 Неизвестный столбец "вопрос" в "списке полей"")

После php artisan db:seed я получаю сообщение об ошибке:

1   PDOException::("SQLSTATE[42S22]: Column not found: 1054 Unknown column 'question' in 'field list'")
      F:\Projects\php\realtimeApp\vendor\laravel\framework\src\Illuminate\Database\Connection.php:452

2   PDO::prepare("insert into `replies` (`body`, `question`, `user_id`, `updated_at`, `created_at`) values (?, ?, ?, ?, ?)")"

Вот мой репозиторий на Github: https://github.com/hevzy86/realtimeApp

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

Ignatius 27.07.2019 11:32
Стоит ли изучать 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
1
1 347
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

В миграции таблицы ответы вы создаете поле с именем question_id:

Schema::create('replies', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->text('body');
            $table->integer('question_id')->unsigned(); // <--- here

            $table->timestamps();
        });

Однако в вашей миграции, которая зависит от фабрики, которую вы создали для ответы, вы устанавливаете для поля значение question:

$factory->define(Reply::class, function (Faker $faker) {
    return [
        'body' => $faker->text,
        'question' => function(){  // <--- here
            return Question::all()->random();
        },
        'user_id' => function(){
            return \App\User::all()->random();
        },
    ];

Измените question на своей фабрике, чтобы вызвать id (выясните, какие вопросы уже есть в базе данных, и просто выберите случайный id) и назовите его правильно в соответствии с полем (question_id)

Похоже, что ваша база данных неправильно импортирована/или структурирована (т. е. у вас действительно могут быть отсутствующие или правильно названные столбцы). Вы можете создать резервную копию и удалить, чтобы начать с базы данных. Предложите вам проверить базу данных и (начать сначала) попробовать снова импортировать базу данных и убедиться, что она проверяет «ОК» (например: все зеленые галочки, если вы используете phpMyadmin), поскольку довольно часто могут возникать проблемы при переносе баз данных. (Проверьте на другом ПК, если можете)

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