Php 如何通过Eloquent获得上个月的物品
我使用PDO获取上一周或一个月的项目,如下面的代码所示。现在我正在将代码转换为Laravel。因此,我想知道是否有雄辩的方法来实现以下查询:Php 如何通过Eloquent获得上个月的物品,php,laravel,laravel-4,laravel-5,eloquent,Php,Laravel,Laravel 4,Laravel 5,Eloquent,我使用PDO获取上一周或一个月的项目,如下面的代码所示。现在我正在将代码转换为Laravel。因此,我想知道是否有雄辩的方法来实现以下查询: public function trendingAlbums($category=null,$order='views',$from=0,$limit=20,$term=null) { $cond = isset($category) ? "AND category_id IN ($category)" : ''; if($term ==
public function trendingAlbums($category=null,$order='views',$from=0,$limit=20,$term=null) {
$cond = isset($category) ? "AND category_id IN ($category)" : '';
if($term == 'month') {
$cond .= "AND created_at BETWEEN DATE_SUB(CURRENT_DATE() ,INTERVAL 1 MONTH) AND CURRENT_DATE()";
} elseif ($term =='week') {
$cond .= "AND created_at BETWEEN DATE_SUB(CURRENT_DATE() ,INTERVAL 7 DAY) AND CURRENT_DATE()";
}
$sql = "SELECT * FROM view_albums WHERE 1 $cond ORDER BY $order DESC LIMIT :from, $limit";
try {
$q = $this->con->prepare($sql);
isset($category) ? $q->bindValue(':category',$category,PDO::PARAM_STR) : '';
$q->bindvalue(':from',$from,PDO::PARAM_INT);
$q->execute();
} catch (PDOException $ex) {
return $this->errorhandler($ex->getmessage()); // displaying/hanlding actual error message
//return $ex->getMessage();
}
$r= $q->fetchAll(PDO::FETCH_OBJ);
return $r;
}
使用碳。它允许您轻松创建日期,如Carbon::today()->子周(1)或Carbon::today()->子月(1)。您可以这样做
$items = Item::where( DB::raw('MONTH(created_at)'), '=', date('n') )->get();
回答得很好。实际上有一种方法可以做完全相同的事情,但不需要使用
DB::raw
。您可能希望将其包含在您的答案中。实际上,它将返回当月或某些特定月份的项目,而不是上个月(/last 30 day)的项目,而我需要返回上个月或30天的项目。。