2016-10-10 75 views
0

我有3個模型:用戶,查詢,提供。關係是用戶有很多查詢並且查詢有許多提議。Laravel鏈接多對一關係

在控制器中,我使用$queries=User->query()->get();query()是用戶模型中的hasMany方法)並將其作爲參數傳遞。鑑於我想顯示單個用戶的查詢表並計算對每個查詢所做的所有報價。

其實我想要得到的,是一個嵌套的對象$查詢,如

user: 
    query1: 
    offer1 
    offer2 
    query2: 
    offer3 
    offer4 

那應該怎麼在模型耦合,以及如何在控制器使用它,並查看?

回答

0

你可能有這樣的事情:

Class User extends Model{ 

protected $table = 'users'; 

public function query(){ 

    return $this->hasMany('App\Query'); 

} 

} 

Class Query extends Model{ 

protected $table = 'queries'; 

public function offer(){ 

    return $this->hasMany('App\Offer'); 

} 

public function user(){ 

return $this->belongsto('App\User'); 

} 

} 

Class Offer extends Model{ 

protected $table = 'offers'; 

public function query(){ 

    return $this->belongsTo('App\Query'); 

} 

} 

然後在你的控制器,你可以有這樣的事情:

public function showUser($id){ 

$user = User::with('query.offer')->find($id); 
return View::make('user')->with('user', $user); 

} 

那麼在你看來,你可以有這樣的:

@foreach($user->query as $query) 
    {{$query->title}} 
     @foreach($query->offer as $offer) 
     {{$offer->title}} 
     {{$offer->amount}} 
     @endforeach 
@endforeach