Как получить данные, сопоставив месяц рождения с базой данных и текущий месяц в laravel, используя расширение даты и времени Carbon?
Мне нужны точно такие же результаты, как я дал ниже в SQL-запросе в Laravel 5.
SELECT * FROM `customers` WHERE MONTH(birthdate) = MONTH(NOW()) // get get current month's birthday
В моем контроллере у меня есть код этого.
$customer['current_dob'] = Customers::where( DB::raw('MONTH(birthdate)','=','MONTH(NOW())'))->get();
Модель:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Customers extends Model
{
protected $table = 'customers';
protected $fillable = array('fname','lname','email','mobile','birthdate','aniversary','gender','amount');
}
1 ответ
Решение
Хороший сценарий для использования whereRaw
// Get customer with birth date in current month
Customers::whereRaw('MONTH(birthdate) = MONTH(NOW())')->get();
// Get customer with birth date in a specific month
$month = Carbon\Carbon::now()->month; // Current month with Carbon
Customers::whereRaw('MONTH(birthdate) = ?', [$month])->get();