2016-11-16 2 views
0

У меня есть две таблицы со многими-ко-многим и сводной таблицыВыборка данных из Laravel построитель запросов с с elquent отношений

Таблица 1: туры | id | имя | country_id |
Таблица 2: страны | id | имя | Пивной стол: country_tour | id | country_id | tour_id |

Модель 1 Tour.php

public function country() 
{ 
    return $this->belongsToMany('App\Country'); 
} 

Модель 2 Country.php

public function tours() 
{ 
    return $this->belongsToMany('App\Tour'); 
} 

Как можно получить данные с построитель запросов. Я пытаюсь это

$featured = DB::table('tours')->where('country', 'Croatia')->get(); 

и я получаю сообщение об ошибке

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'country' in 'where clause' (SQL: select * from `tours` where `country` = Croatia) 
+0

Что вы подразумеваете под категорией здесь .. Что вы хотите в конце? –

+0

похоже, что вы запрашиваете неправильный столбец, таблица 'tour' не имеет колонки' category'. И почему у вас есть столбец «country_id» в таблице тура, здесь это не имеет смысла. –

+0

Да, я действительно ошибся в запросе. Теперь я сделал исправление, но все еще получаю ошибку. Как получить данные из сводной таблицы? Использует ли elequent модель для сбора данных? –

ответ

0

Это не многие-ко-многим, как я вижу. Многие-ко-многим будут hasAndBelongsToMany не belongsToMany. Но проблема с вашим запросом отличается. В ваших таблицах tours нет существующего столбца category. Кстати, вы можете использовать \App\Tour::where() вместо DB::table('tours')->where(). Для этого нужны модели.

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