如何在Laravel 5中查询连接模型

时间:2015-07-13 07:28:20

标签: laravel

我对Laravel5很新。我还在努力学习它。我的问题是:

有2个表:

TableA命名TA有一些列如下:

Name  Email  Tel1  Tel2  Tel3

名为TB的TableB有一些列如下:

Position  MTel  GTel

表一行可以与表B对应多行 现在我想进行SQL查询,如下所示:

select * where
    (TA.Tel1=TB.MTel and TA.Tel2=TB.GTel) or 
    (TA.Tel1=TB.MTel and TA.Tel3=TB.GTel) or 
    (TA.Tel2=TB.MTel and TA.Tel3=TB.GTel) or 
    (TA.Tel2=TB.MTel and TA.Tel1=TB.GTel) or 
    (TA.Tel3=TB.MTel and TA.Tel1=TB.GTel) or 
    (TA.Tel3=TB.MTel and TA.Tel2=TB.GTel) and
    ( Name='myname')

我建立了两个模型

型号1:

class TA extends Model
{
    protected $table = 'TA';

     public function TB()
    {
        return $this->belongsTo('App\TB','MTel');
    }
}

模型2

class TB extends Model
{
    protected $table = 'TB';

     public function TA()
    {
        return $this->hasMany('App\TA','Tel1');
    }
}

和...我不知道如何继续。

期待你的帮助,谢谢

1 个答案:

答案 0 :(得分:-1)

如果您希望从表格TB中获取与表格TB中的记录相关的所有记录,您可以执行以下操作(如果您使用的是Eloquent ofcourse):

TB::with('TA')->where('name','=',$name);

这将从表TB中选择具有相应名称的记录以及属于它的表TA中的所有记录。