在雄辩的联合结果上应用where子句时未得到结果

时间:2018-11-05 10:12:53

标签: php laravel

我正在我的应用程序中开发过滤功能,并希望在union子句的结果上应用where子句,并且我尝试过这种方法,但是它不起作用。

$pricePerHour =  VenueInfo::whereBetween("pricePerHour", [$values[0], $values[1] ]);
$pricePerDay = VenueInfo::whereBetween("pricePerDay", [$values[0], $values[1] ])->union($pricePerHour);
$result = DB::table(DB::raw("({$pricePerDay->toSql()}) as price"))
            ->mergeBindings($pricePerDay->getQuery())
            ->selectRaw("price.*")
            ->where('price.city' ,'Karachi');

我什么都没收到

dd($result->get());

当我获得$ result时,我必须对$ result应用过滤器,例如:

$venues = $result->when($spaceType, function($query, $spaceType){
                     $query->where('spaceType', $spaceType);
                  })

我也尝试过这种方式。

$pricePerHour =  DB::table('venue_infos')->whereRaw(("pricePerHour between $values[0] and  $values[1] "));

$pricePerDay = DB::table('venue_infos')->whereRaw(("pricePerDay between     $values[0] and  $values[1]"))->union($pricePerHour);

$result = DB::table(DB::raw("({$pricePerDay->toSql()}) as price"))
            ->mergeBindings($pricePerDay);

但是这里的问题是我何时做

dd($result->get()[0]->images);

它给我错误:

Undefined property: stdClass::$images

在这里场所信息表与图像表具有一对多的关系。

public function venueInfo(){
      return $this->belongsTo('App\VenueInfo','d_id');
}   
public function images(){
      return $this->hasMany('App\Image', 'd_id', 'daftar_id');
}

0 个答案:

没有答案