6

これは私が欲しいものです、私は2つのテーブルを持っています。1 つは「レストラン」、もう 1 つは「施設」です。

テーブルは単純で、1 対 1 の関係です。、 、 などのレストラン テーブルと、idname、などで呼び出さslugれる別のテーブルがあるようにfacilitiesidrestaurant_idwifiparking

ここに私のモデルがあります:

class Restaurant extends Eloquent {

protected $table = 'restaurants';

public function facilities() {
    return $this->hasOne('Facilities'); 
}
}

class Facilities extends Eloquent {

protected $table = 'facilities';

public function restaurant() {
    return $this->belongsTo('Restaurant');
 }


}

私はこのようにしたいSelect * from restaurants r left join facilities rf on r.id=rf.restaurant_id where r.name = 'bbq' and rf.wifi != '1'

Eloquent を使用してそれを行う方法は?

ps。https://stackoverflow.com/questions/14621943/laravel-how-to-use-where-conditions-for-relations-column# =から変更して申し訳ありませんが、同様の問題があります。

4

2 に答える 2

1

両方をフィルタリングするにはいくつかの方法があります。これは QueryBuilder を使用しています。

Restaurant::join('facilities','facilities.restaurant_id','=','restaurants.id')
                ->where('name','bbq')
                ->where('facilities.wifi','!=', 1)
                ->get();
于 2013-09-19T04:04:56.527 に答える