我有3个表:用户,项目,项目和朋友。我想获得项目的所有项目,并列出与相关朋友的每个项目。我在模特中遗漏了什么吗?最终,我希望得到所有与这些项目相关的朋友。
// CONTROLLER
public function show($id)
{
$uid = Auth::user()->id;
$projects = Project::find($id)->with('item.friend')->get();
return View::make('projects.show', compact('projects'));
}
//VIEW
@foreach ($projects as $project)
@foreach ($project->friend as $friend)
<li>
<a href="#" class='itemLink' >{{$friend->email}}</a>
<a href="#" class='itemLink' >{{$projects->item->name}}</a>
</li>
@endforeach
@endforeach
// MODELS
class User extends Eloquent {
public function project()
{
return $this->hasMany('Project');
}
public function item()
{
return $this->hasMany('Item');
}
public function friend()
{
return $this->hasMany('Friend');
}
class Project extends Eloquent {
protected $guarded = array();
public static $rules = array();
public function item()
{
return $this->hasMany('Item');
}
public function friend()
{
return $this->hasMany('Friend');
}
class Item extends Eloquent {
protected $guarded = array();
public static $rules = array();
public function friend()
{
return $this->hasMany('Friend');
}
class Friend extends Eloquent {
protected $guarded = array();
public static $rules = array();
答案 0 :(得分:0)
您的模型初看起来似乎没问题。我想因为你正在拉item.friend
关系,这一行
@foreach ($project->friend as $friend)
应该是,
@foreach ($project->item->friend as $friend)
答案 1 :(得分:0)
你错过了一个循环。我建议在设置多对多关系时,请确保您的方法是复数。尝试阅读代码时更有意义。然后,您将使用@foreach $project->items as $item
或$item->friends as $friend
发送。
@foreach ($projects as $project)
@foreach ($project->item as $item)
@foreach($item->friend as $friend)
<li>
<a href="#" class='itemLink' >{{$friend->email}}</a>
<a href="#" class='itemLink' >{{$item->name}}</a>
</li>
@endforeach
@endforeach
@endforeach