如何从Laravel属于ToMany关系获取行?

时间:2014-11-15 22:07:03

标签: php mysql laravel laravel-4 eloquent

我对Laravel上的belongsToMany关系有问题。首先,我想描述我的表格结构。我的数据库上有3个不同的表。项目,技能和ProjectSkills是我的表。我的模型有一个结构。当我尝试插入具有技能的项目时,它工作得很好。但是,当我试图获得一个项目时,它并没有列出技能。

ProjectController:

$Project = Projects::with('skills')->where('Projects.SefTitle','=',$ProjectSef)->first();
return View::make('Projects.view',array('Project'=>$Project));

项目(模型)

...
public function skills(){
    return $this->belongsToMany('Skills','ProjectSkills','ProjectID','SkillID');
}
...

查看:

@foreach($Project->Skills as $Skill)
    {{$Skill->Title}} <br />
@endforeach

数据库和数据集:

ProjectSkills

Skills

Projects

1 个答案:

答案 0 :(得分:1)

对于与默认Laravel使用的主键(仅id)不同的主键,请确保在每个模型类上定义主键:

class Projects extends Eloquent {
    protected $primaryKey = 'ProjectID';
}