у меня есть:Laravel и получить список всех hasMany
class Project extends Eloquent
{
protected $table = 'projects';
public function engagements()
{
/**
* belonngsToMany is a strange name, but it seems
* to be the only way of tying the relationship up
*/
return $this->hasMany('Engagement');
}
}
и
class Engagement extends Eloquent
{
protected $table = 'engagements';
public function projects()
{
return $this->belongsToMany('Project');
}
}
Я хочу, чтобы получить список обязательств по идентификатору проекта ... как это работает?
$unit = Project::where('id', $projectID)->with('engagements')
терпит неудачу:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'engagements.project_id' in 'where clause' (SQL: select * from `engagements` where `engagements`.`project_id` in (9))
Контекст:
- Помолвка может принадлежать многим проектам.
- Проект имеет привязки к нему.
Таблица структуры:
проекты:
Schema::create('projects', function($table)
{
$table->increments('id');
$table->timestamps();
$table->string('title', 255);
$table->softDeletes();
});
захватов:
Schema::create('engagements', function($table)
{
$table->increments('id');
$table->timestamps();
$table->softDeletes();
});
отношения:
Schema::create('engagement_project', function(Blueprint $table)
{
$table->increments('id');
$table->integer('engagement_id')->unsigned();
$table->index('engagement_id');
$table->integer('project_id')->unsigned();
$table->index('project_id');
$table->timestamps();
});
Schema::table('engagement_project', function($table)
{
$table->foreign('engagement_id')->references('id')->on('engagements');
$table->foreign('project_id')->references('id')->on('projects');
});
разместить свои структуры таблиц – justrohu
Я добавил, что – Jimmyt1988