Exemplo n.º 1
0
function filters()
{
    $filter_types = ['type' => 'type', 'commercial' => 'type', 'sea_dist' => 'range', 'price' => 'range', 'district_id' => 'type', 'town_id' => 'type', 'house_area' => 'range', 'rooms' => 'range', 'yard_area' => 'range', 'period' => 'type', 'pool' => 'check', 'producer' => 'list'];
    $take = 10;
    $sort = 'title';
    $order = 'asc';
    $filters = 'house_area=120;380&district_id=2&town_id=3&pool=bool&producer=[asus;acer;lenovo;toshiba;sony]&price=10000;160000&yard_area=100;800&commercial=rent&period=daily&type=cottage&rooms=3;7';
    // $query = Estate::join('districts', 'estates.district_id', '=', 'districts.district_id')->join('towns', 'towns.town_id', '=', 'districts.town_id'); // get Illuminate\Database\Eloquent\Builder
    $query = Estate::joined();
    // get Illuminate\Database\Eloquent\Builder
    $query = apply_filters($query, $filters);
    // $query = Filter::apply($query, $filters);
    $query = $query->orderBy($sort, $order);
    try {
        $estates = $query->skip($skip)->take($take)->get();
    } catch (Exception $e) {
        return redirect()->back();
    }
}