Laravel Select records in specific year
14,396
Solution 1
You can do it like that:
$posts = Blog::where( DB::raw('YEAR(created_at)'), '=', '2015' )->get();
Here you can get year from created_at field with YEAR function, then compare with your date.
Solution 2
Just for completition. There is a Laravel method for it.
Blog::whereYear('created_at', 2017)->get();
See where clause, subsection whereDate / whereMonth / whereDay / whereYear
Solution 3
You can use scope function in your model. Eg:
Your Model
class Blog extends Eloquent {
public function scopePopular($query,$year)
{
return $query->where('year', '=', $year);
}
}
Usage
$blog = Blog::popular(1999)-get();
Author by
Paolo Resteghini
Updated on June 13, 2022Comments
-
Paolo Resteghini almost 2 years
I'm new to Laravel and struggling to identify how I can select all records created in 2015 using the created_at field provided by the timestamp.
The model I am using is Blog:
$posts = Blog::latest()->get();
Example date in database:
2015-01-25 12:53:27
Could anyone shed some light?
Thanks!