【发布时间】:2012-12-25 08:02:08
【问题描述】:
我正在尝试在 Eloquent ORM 中执行以下查询,但似乎无法执行 MySQL 函数 -
$post = Post::where('slug', '=', $slug)->where('YEAR(created_at)', '=', $year)->first();
我得到的异常如下 - 留言:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'YEAR(created_at)' in 'where clause'
SQL: SELECT * FROM `posts` WHERE `slug` = ? AND `YEAR(created_at)` = ? LIMIT 1
Bindings: array (
0 => 'placeholder',
1 => 2013,
)
所以,基本上,它将YEAR() MySQL 函数封装为一列。有没有办法在不使用原始查询的情况下做到这一点?
【问题讨论】:
-
你想在 YEAR(created_at) 之前实现什么? ''''$year'''' 通常的值是多少?
-
$year就是这样 - 带有年份的变量,例如 2013。created_at是 MySQL 时间戳列,例如,YEAR(created_at)将返回2013。
标签: php database laravel eloquent