我有3个型号:User,Query,Offer。关系是用户有很多查询,查询有很多优惠。
在控制器中我使用$queries=User->query()->get();
(query()
是用户模型中的hasMany方法)并将其作为参数传递给view。在视图中,我想显示来自单个用户的查询表,并计算对每个查询的所有报价。
实际上我想要的是一个嵌套对象$查询,如
user:
query1:
offer1
offer2
query2:
offer3
offer4
它应该如何在模型中耦合以及如何在控制器和视图中使用它?
答案 0 :(得分: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