Laravel 4 eloquent + raw查询返回NULL

时间:2013-09-20 04:17:14

标签: mysql laravel laravel-4 eloquent

如果在我的Place模型中有这种关系:

public function openhours()
{
  return $this->hasOne('Hours')->select(DB::raw("IF(CURTIME() BETWEEN open_time AND close_time ,'Open','Closed')"));
}

在我的路线中:

 $place = Place::with('openhours')->where('id', '=', 5)->get();

我的桌子:

Table Name : hours
Fields : 
id          int(11)
place_id    int(11)
open_time   time
close_time  time

表记录:

id: 1
place_id: 5
open_time: 10:00:00
close_time: 17:00:00

它只会返回:

 openhours:null

当我在phpmyadmin中手动运行此查询时,它可以正常工作。

我做错了什么?

提前致谢。

2 个答案:

答案 0 :(得分:2)

将以下内容添加到您的应用程序中:在过滤之前,您将获得正在执行的所有查询和绑定的转储。

DB::listen(function($sql, $bindings, $time)
{
    var_dump($sql);
    var_dump($bindings);
});

不是答案,但它可以帮助您了解雄辩请求与您自己的SQL的比较。

答案 1 :(得分:1)

你不需要更多像;

Place::find($id)->openhours();