2015-02-12 50 views
0

我有一個奇怪的問題 - 我的Tasks表有一個due_at列。我播種的表50個值在未來,然後在我的管理控制器我想抓住這些任務在管理面板顯示:laravel 4 ORM查詢運算符

// AdminController.php 
$tasks = Task::where('due_at', '>=', 'NOW()')->get(); 
dd($tasks); // shows zero results 

運行在預期的50行phpmyadmin的結果相同的查詢:

SELECT * FROM `tasks` WHERE due_at >= now(); // returns 50 rows 

如果我只是反向操作,則返回50個結果:

// AdminController.php 
$tasks = Task::where('due_at', '<=', 'NOW()')->get(); 
dd($tasks); // shows 50 results 

我失去了一些東西明顯?

+0

可能是一個問題與雄辯。 'Task :: whereRaw('due_at> = NOW()') - > get()'有效嗎? – Mahozi 2015-02-12 06:04:59

回答

1

我認爲你需要做的是:在查詢記錄

$tasks = Task::where('due_at', '<=', DB::raw('NOW()'))->get(); 

打開你的MySQL服務器,我想你會發現Laravel 4查詢生成器解釋你的字符串「NOW()」到的東西你不指望。您必須將其包裝在DB :: raw()中才能將原始字符串獲取到查詢中。