MySQLとSQLiteの少なくとも 2 つのデータベースをサポートするシステムを開発しています。
そして、日付の差分、追加/サブ日、追加/サブ月など、Eloquentで安全に日付操作を行うにはどうすればよいか疑問に思っています。
現在、私は次のコードを持っていますが、それは機能しますが、より良い方法を見つけることを信じたいと思っています。
$database = Config::get('database.default');
$yesterdaySql;
if ($database == 'sqlite')
{
$yesterdaySql = 'datetime(\'now\', \'-1 day\')';
}
else if ($databse == 'mysql')
{
$yesterdaySql = 'subdate(current_date, 1)';
}
生の独自のSQLステートメントを明示的に使用せずにそれを行う別の方法はありますか? 私は次のようなものを見たいです:
$yesterdaySql = Model::where('date', DB::addDays(-1));
// DB will generate the proper raw SQL.
いくつかの調査を行ったところ、Doctrine には次のDoctrine\DBAL\Platform\AbstractPlatform
ようなメソッドを含むクラスがあることがわかりました:getDateDiffExpression
などgetDateAddDaysExpression
。