我有两个模型(用户和服务)。我想要的是显示用户的所有服务。这是我向我展示所有服务的行动:
public function index()
{
$services = Service::all();
// load the view and pass the nerds
return View::make('services.index')->with('services', $services);
}
在我的用户模型中添加了此功能:
public function service()
{
return $this->hasMany('Service');
}
然后在我的服务模式中
public function user()
{
return $this->hasOne('User');
}
所以,如果有人有任何想法,我将非常感激:)
答案 0 :(得分:0)
在您的服务模式中。请注意,您可能必须在这些关系上定义本地和外包键
public function user()
{
return $this->belognsTo('User');
}
然后你可以在你的控制器或视图中解析它们(只有foreach部分),就像这样
$user=User::find($id);
foreach($user->service as $service){
//do something
echo $service->id
}
答案 1 :(得分:0)
您要寻找1对多关系的关系是hasMany()
和belongsTo()
。
考虑到这一点,在Service
模型中,定义关系就像这样......
public function user()
{
return $this->belongsTo('User');
}
在这种情况下,这并不重要,因为你没有使用它,但它可能会在以后为你节省一些混乱。
现在要获取用户的服务,您可以使用User
模式。
$services = User::find(1)->services;
或者,如果您只想获取登录用户的服务......
$services = Auth::user()->services;