laravel5.1で日時バッチを作ってみた。

laravel5.1で日時バッチを作ってみた。

「年齢で何歳以上」とか「勤続10年以上」みたいな検索をしたい時は、SQLで計算するよりも専用カラムを用意してWhere句で指定できた方が楽。
たた、MySQLなどはリアルタイムで値が計算されるような機能って無さそう…。
一日に一回更新すれば充分だから、日時バッチで計算する事で対応しよう。

参考URL:http://qiita.com/ritukiii/items/a70d89fa988b2d9afbc4

php artisanに追加コマンド(追加オプション?)が生成できるらしい。
php artisan make:console クラス名 –command=”コメンド名”

app/Console/Commands/DailyCalc.phpが生成された!

とりあえず、hello, worldと出力する処理を、handleメソッドに追加。

これだけでは動かなくて、app/Console/Kernel.phpに、自作コマンドのパスを追加する必要がある

ここまでやれば、コマンドから実行可能になる!

肝心要の日時バッチは例によってcrontabを使う。
laravelでは1行だけ記述して毎分コールしてもらう。そして、内部コーディングを使ってどのタイミングで、どんなコマンドを実行するか決定するらしい。

さっき独自コマンドを登録したapp/Console/Kernel.phpに記述する。

公式HPをみると、わりと色々な指定がある。年一とか忘れてそうだ(^_^;)
https://laravel.com/docs/master/scheduling

完成形(年齢・勤続年数の更新処理)