Laravel 4:将结构缩减为多个表时保持表关系

Laravel 4:将结构缩减为多个表时保持表关系,laravel,laravel-4,relationships,Laravel,Laravel 4,Relationships,历史: DB:表客户端和标题 一个客户端可以有多个标题,但一个标题只能有一个客户端。因此,我将使用一个简单的一对多关系,如下所示: 客户机模型 class Client extends Eloquent { public function titles(){ return $this->hasMany('titles'); } } 然后,我只需使用以下命令获取所选标题的请求数据 $clientTitles = Client::f

历史:

DB:表客户端和标题

一个客户端可以有多个标题,但一个标题只能有一个客户端。因此,我将使用一个简单的一对多关系,如下所示: 客户机模型

  class Client extends Eloquent {
      public function titles(){
          return $this->hasMany('titles');
      }  
  }
然后,我只需使用以下命令获取所选标题的请求数据

  $clientTitles = Client::find(1)->titles;
总而言之,这应该列出所有与客户相关的标题

我的问题实际上是这样的,因为我希望将标题表中的数据拆分为较小的表,因为我也在系统中的某个位置使用标题数据的某些方面,并且不需要每次都获取所有标题详细信息

因此,我将有另外三个与titles数据表相关的表

标题、标题、艺术品、标题详情、标题列表

现在,如果我使用与上面相同的方法,我将获得titles表中的所有数据,但不包括其他三个。那么,我如何更新我的关系,然后刮取其他三个标题表,以便在需要时,我可以获得所有数据,而不是


或者有没有其他方法可以做到这一点,或者不保留我所做的,只是将调用限制在我需要的字段?

根据我的理解,假设您的
标题
模型是类似的-

类标题扩展了雄辩的{
公共职能标题网络(){
返回。。
}
公共职能标题详情(){
返回。。
}
公共功能标题列表(){
返回。。
}
}
你的客户模型是-

类客户端扩展了雄辩的{
公共职能名称(){
返回$this->hasMany('titles');
}  
}
因此,为了获得这些表格中任何一个的数据
Title\u Artwork,Title\u Details,Titles\u List
你可以这样做

$clientTitles=Client::with('Titles','Titles.titlearWork','Titles.titlelist')->其中('id','=',1)->get();
就Laravel而言,它被称为“急切加载”,要了解更多信息,您可以查看

它还可以用于多重嵌套,我的意思是如果您的
Title\u Artwork
也包含如下关系-

类标题网络扩展了雄辩的{
公共函数sometable(){
返回。。;
}
}
然后您可以使用

$clientTitles=Client::with('Titles','Titles.titleNetwork.sometable','Titles.titlelist')->其中('id','=',1)->get();