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!
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.
Just for completition. There is a Laravel method for it.
Blog::whereYear('created_at', 2017)->get();
See where clause , subsection whereDate / whereMonth / whereDay / whereYear
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();
Scope Function Worked perfectly for me:
class Blog extends Eloquent {
public function scopeSeason($query,$year)
{
return $query->whereYear('created_at', '=', $year);
}
}
Usage:
$blog = Blog::where('status','active')->season(2021)->get();
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.