я создаю новое веб-приложение, где у меня есть 3 таблицы: users
, teams
и project
:Laravel подправлять при вставке в БД
Вот структура team
и project
миграции:
Schema::create('teams', function (Blueprint $table) {
$table->increments('id');
$table->string('team_image', 15);
$table->string('team_name', 50);
$table->string('team_description');
$table->timestamps();
});
Schema::create('project', function (Blueprint $table) {
$table->increments('id');
$table->integer('members')->unsigned();
$table->foreign('members')->references('id')->on('teams');
$table->string('name');
$table->string('description');
$table->string('lead');
$table->timestamps();
});
Вот в Team
и Project
модели:
class Team extends Model
{
protected $table = 'teams';
public function projects()
{
return $this->hasMany('App\Project');
}
}
class Project extends Model
{
protected $table = 'project';
protected $fillable = ['name', 'description'];
public function teams()
{
return $this->belongsTo('App\Team');
}
}
В ремесленник я запускаю это:
$team = factory('App\Team')->create();
И я получил заселена к Д.Б. обманщик и фетиш это нормально. Но когда я пытаюсь вызвать проект:
$team->projects()->create(['name'=>'project 1', 'description'=>'bla bla']);
Я получаю это:
Осветите \ Database \ QueryException с сообщением «SQLSTATE [42S22]: Колонка не найден: 1054 Неизвестный столбец 'team_id' в 'списке полей' (SQL: вставки в
project
(name
,description
,team_id
,updated_at
,created_at
) значения (проект 1, бла-бла, 2, 2015-12-20 00:06:29, 2015-12- 20 00:06:29)) '
И team_id
использовали вместо members
, используется в нескольких миграций ранее, но я сброшена миграции и обновил файл переноса и повторно миграций и дб отлично, members
колонка создается.
Когда я заменяю members
на team_id
, тогда вояжник работает и вставляет его в таблицу project
.
Любые подсказки?
Спасибо Богдану, мне нужно больше читать, так что это очень помогло мне и решило проблему. Тпх – pinarella