簡體   English   中英

使用Laravel 4檢索相關模型

[英]Retrieve Related Models using Laravel 4

我有3個表格:Users,Projects,Items和Friends。 我想獲取一個項目的所有項目,並與相關的朋友列出每個項目。 我的模型中缺少什么嗎? 最終,我希望得到與這些物品相關的所有朋友。

// 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();

乍一看,您的模型似乎還可以。 我認為既然您正在建立item.friend關系,這條線

@foreach ($project->friend as $friend)

應該,

@foreach ($project->item->friend as $friend)

您錯過了一個循環。 我建議在建立多對多關系時,請確保您的方法是復數形式。 嘗試閱讀代碼時,這更有意義。 然后,您可以將@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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM