Eloquent Query返回mysql查询返回结果的任何内容?

时间:2014-08-29 17:27:39

标签: php mysql laravel laravel-4 eloquent

我有这个雄辩的问题。

    $drops = Drop::with('location')->where('date_id', '=', $date_id)
        ->where('delivered_distance', '>=', 5)
        ->whereHas('delivery', function($q) use($route_id){
            $q->where('route_id', '=', $route_id);
        })->get();

哪个产生这个mysql

 { ["query"]=> string(183) "select * from `drops` where `date_id` = ? and `delivered_distance` >= ? and (select count(*) from `deliveries` where `drops`.`delivery_id` = `deliveries`.`id` and `route_id` = ?) >= 1" ["bindings"]=> array(3) { [0]=> string(2) "10" [1]=> int(5) [2]=> string(1) "2" }

现在这不会在我的代码中返回任何内容。如果我将数据放在正确的位置

select * from `drops` where `date_id` = 10 and `delivered_distance` >= 5 and (select count(*) from `deliveries` where `drops`.`delivery_id` = `deliveries`.`id` and `route_id` = 2) >= 1

运行代码我从mysql workbench获得结果。

起初我以为它可能不喜欢$ date_id和$ route_id是字符串所以我尝试输入。

    $drops = Drop::with('location')->where('date_id', '=', (int) $date_id)
        ->where('delivered_distance', '>=', 5)
        ->whereHas('delivery', function($q) use($route_id){
            $q->where('route_id', '=', (int) $route_id);
        })->get();

但我仍然从雄辩中得到一个空洞的结果。有什么想法吗?

以下是所有被调用代码的代码。

public function getAlerts($date_id, $route_id)
{
    $view = View::make('report.alerts');

    $drops = Drop::with('location')->where('date_id', '=', $date_id)
        ->where('delivered_distance', '>=', 5)
        ->whereHas('delivery', function($q) use($route_id){
            $q->where('route_id', '=', $route_id);
        })->get();

    $view->with('drops', $drops);

    return $view;
}

0 个答案:

没有答案