#mysql #sql #laravel
#mysql #sql #laravel
Вопрос:
Пытаюсь добавить данные в базу данных, используя эту строку
$this->project->description()->create( $this->getDescriptionData() );
Как мне справиться с этой ошибкой SQLSTATE[42S22]: Column not found: 1054 Unknown column 'description' in 'field list'
? Обратите внимание, что описание поля уже существует в таблице базы данных, в которую я пытаюсь вставить данные.
—————
У меня есть Project
класс that hasOne( ProjectDescription::class)
и класс belongsTo(Project:class)
ProjectDescpription .
В классе ProjectDescription у меня есть description
поле, равное $fillable
.
что я пробовал
Я попытался переименовать поле description в базе данных в content и сделать то же самое в своем коде. Да, это работает, но мне нужно понять, почему это не работает, когда столбец установлен как 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 ModulesSystemEntitiesProjectDescription
*/
public function description()
{
return $this->hasOne(ProjectDescription::class);
}
Описание проекта
class projectDescription extends Model
{
protected $fillable = [ 'description', 'payment_method_id', 'target', 'image_path', 'video_url', 'start_date', 'end_date'];
/**
* project
*
* @return ModulesSystemEntitiesProject
*/
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:
В процессе миграции для таблицы описания проекта
Изменить
$table->text('decsription');
Для
$table->text('description');