Как исправить ошибку Column not found при добавлении данных в базу данных [SQLSTATE [42S22]] - PullRequest
0 голосов
/ 21 апреля 2019

Пытаюсь добавить данные в базу данных, используя эту строку

$this->project->description()->create( $this->getDescriptionData() );

Как мне справиться с этой ошибкой SQLSTATE[42S22]: Column not found: 1054 Unknown column 'description' in 'field list'?Обратите внимание, что описание поля уже существует в таблице базы данных, в которую я пытаюсь вставить данные.

---------------

У меня есть Project класс, который hasOne( ProjectDescription::class), и класс ProjectDescpription belongsTo(Project:class).

В классе ProjectDescription у меня поле description установлено на $fillable.

, что я пытался

Я попытался переименовать поле описания в базе данных в содержимое и сделать то же самое в моем коде.Да, это работает, но мне нужно понять, почему это не работает, когда столбец установлен как description

Миграция для таблицы описания проекта



       Schema::create('project_descriptions', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->bigInteger('project_id');
            $table->text('decsription');
            $table->integer('payment_method_id');
            $table->bigInteger('target');
            $table->string('image_path')->nullable();
            $table->string('video_url')->nullable();
            $table->dateTime('start_date')->nullable();
            $table->dateTime('end_date')->nullable();

            $table->longText('options')->nullable();
            $table->timestamps();
            $table->softDeletes();
        });

Вот мой класс проекта и проекткласс описания соответственно


class Project extends Model
{
    protected $fillable = ['title', 'user_id', 'category_id'];

    /**
     * description
     *
     * @return Modules\System\Entities\ProjectDescription
     */
    public function description()
    {
        return $this->hasOne(ProjectDescription::class);
    }

projectDescription


class projectDescription extends Model
{
    protected $fillable = [ 'description', 'payment_method_id', 'target', 'image_path', 'video_url', 'start_date', 'end_date'];

    /**
     * project
     *
     * @return Modules\System\Entities\Project
     */
    public function project()
    {
        return $this->belongsTo(Project::class);
    }

Я ожидаю, что данные будут записаны в БД, но вместо этого я получаю эту ошибку SQL, в то время как рассматриваемый столбец уже существуетв моей базе данных таблицы

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'description' in 'field list' (SQL: insert into `project_descriptions` (`description`, `payment_method_id`, `target`, `image_path`, `video_url`, `start_date`, `end_date`, `project_id`, `updated_at`, `created_at`) values (dgtfjkgfbgnyt ghvb mkyu, 1, 1200, , https://www.youtube.com/watch2019-04-25v=1J0-BzpFjMg, 2019-05-17, 7, 2019-04-20 23:42:24, 2019-04-20 23:42:24, ?))

1 Ответ

2 голосов
/ 21 апреля 2019

In миграция для таблицы описания проекта

Изменить

$table->text('decsription');

до

$table->text('description');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...