我有两个包含多对多关系和数据透视表的表
表1:旅游| id |名字| country_id |
表2:国家| id |名字|
Piviot表: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)
我所看到的并不是多对多的关系。多对多将是hasAndBelongsToMany
而不是belongsToMany
。但是查询的问题是不同的。您的tours
表没有现有的category
列。顺便说一句,您可以使用\App\Tour::where()
代替DB::table('tours')->where()
。那是什么模型类。
答案 1 :(得分:0)
要利用雄辩的模型关系,您需要使用模型本身而不是数据库查询:
$croatia = App\Country::whereName('Croatia')->first();
$toursInCroatia = $croatia->Tours;