Laravel 5使用3个模型获取相关数据

时间:2016-06-09 19:45:05

标签: laravel eloquent

大家好我有这套数据库

clients(#id,raison_sociale,adresse,)<br>
delivery(#id,client_id(fk),date_del) <br>
details(delivery_id(fk),product_id(fk),qt)
product(id,code,desig,price) 

这是我雄辩的关系

class Client extends Model {
   public function livraison (){
       return $this->hasMany('App\Models\Livraison');  } }


 class Detail extends Model
         {
  public function delivery (){
   return $this->belongsTo('App\Models\Delivery');}}


   class Livraison extends Model{
   public function client (){
   return $this->belongsTo('App\Models\Client');
     }
public function detail (){
  return $this->hasMany('App\Models\detail'); }}


  1. 这些关系有问题吗?
  2. 我有一个页面,其中显示了我的所有投放但我无法找到获取此行的正确方法: raison_soc(from client) & date_del(from delivery);和详细信息表(当然为每个客户)

1 个答案:

答案 0 :(得分:0)

use App\Models\Client;

Client::with('delivery.detail')->get();

我无法测试你的人际关系,但假设你遵循命名惯例,你的关系应该没问题。以上内容将获取与客户交付相关的所有详细信息。

您可以使用hasManyThrough方法Has Many Through

改善您的关系

您可以在Client类中执行以下操作:

public function details(){
  return $this->hasManyThrough('App\Models`Details', 'App\Models\Livarasion');
}

如果你能更清楚地解释你的第二点,我可以帮你调整一下。如果您有任何问题,请告诉我