2015-07-13 3 views
2

Я довольно новое с Laravel5. Я все еще пытаюсь это изучить. Мой вопрос:Как запросить в присоединиться к модели в Laravel 5

Есть 2 таблицы:

TableA имени TA имеет несколько столбцов, как показано ниже:

Name Email Tel1 Tel2 Tel3 

TableB имени TB имеет несколько столбцов, как показано ниже:

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') 

И я построить две модели

Model1:

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

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

Model2

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

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

и ... Я не знаю, как продолжить.

с нетерпением ждем вашей помощи, спасибо

+0

Является ли этот запрос тем, что вы всегда хотите применить, когда пытаетесь загрузить отношение или только один из запросов, которые вы хотите запустить на своих моделях? –

ответ

-1

Если вы хотите, чтобы получить все записи из таблицы ТС, связанные с записью в таблице ТБ, вы можете сделать следующее (если вы используете красноречивый конечно):

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

Это выберет запись из таблицы TB с соответствующим именем и всеми записями из таблицы TA, принадлежащей ей.

Смежные вопросы