Laravel
Laravel6を使ってみました
ヤス
更新日:2021/08/12
Laravel5.2から、Laravel6に乗り換えました。
メジャーアップデートは中身が結構変わるイメージがあったんですが、個人的には変更点があまりなくスムーズに乗り換えできました。
Laravel5.2からLaravel6になって、簡単にできるようになった機能や今まで使ってなかった機能について紹介したいと思います。
Laravel6 のインストール方法
Composer経由でインストールできます。
下記コマンドでLaravel6 の最新版がインストールできます。
1 |
composer create-project --prefer-dist laravel/laravel プロジェクト名 "6.*" |
ログイン方法の変更
上記のコマンドでインストールすると、ログイン画面が最初から用意されています。
ログインに使用するDBのテーブルを変更したかったので調べてみました。
1 2 3 4 |
初期状態 ・使用テーブル:users ・ID:email ・パスワード:password |
下記の方法でテーブルや使用するカラムを変更できます。
ログインに使用するIDの変更
App/Http/Controllers/Auth/LoginController.php に下記を追加します。
1 2 3 4 5 |
public function username() { //ログインIDとして使用するカラム名 return 'login_id'; } |
ログインに使用するテーブルとパスワードの変更
App/User.php に下記を追加します。
1 2 3 4 5 6 7 8 |
//使用テーブル変更 protected $table = 'テーブル名'; //パスワードに使用するカラム名 public function getAuthPassword() { return $this->login_password; } |
ログイン条件の追加
パスワード以外にログイン使用する条件を追加する場合
App/Http/Controllers/Auth/LoginController.php に下記を追加します。
1 2 3 4 5 6 7 |
protected function credentials(Request $request) { return array_merge( $request->only($this->username(), 'password') // 標準の条件 ,[ 'login_flag' => 1 ] // 追加条件 ); } |
Slack通知
Laravel6 ではloggingの機能に標準でSlack通知する機能が搭載されています。
※利用にはSlack アプリの「Incoming Webhook」を使用します。
設定方法
config/logging.php を利用します。
1 2 3 4 5 6 7 8 9 |
//下記の項目を利用 'slack' => [ 'driver' => 'slack', //LOG_SLACK_WEBHOOK_URL:「Incoming Webhook」で設定したWebhook URL を使用 'url' => env('LOG_SLACK_WEBHOOK_URL'), 'username' => '通知名', 'emoji' => '絵文字のコード', 'level' => 'critical', ], |
利用方法
下記コードで利用可能です。
1 2 3 |
use Log; Log::channel('slack')->critical("テスト通知"); |
メール送信
Laravel5でも利用できますが、今まで利用したことがなかったので記載しています。
Mail機能を利用
1 2 3 4 5 |
use Mail; Mail::send('mail.test', [], function($message){ $message->to('test@test.com', 'Test')->subject('Test mail'); }); |
resources/views/main.test.blade.php を編集
1 |
メール本文 |
送信の設定は.env を編集
1 2 3 4 5 6 7 8 |
MAIL_DRIVER=smtp MAIL_HOST=ホスト名 MAIL_PORT=587(メール送信に使用するポート) MAIL_USERNAME=送信に使用するメールアドレス MAIL_PASSWORD=メールアドレスパスワード MAIL_ENCRYPTION=tls(暗号方式) MAIL_FROM_ADDRESS=差出人メールアドレス MAIL_FROM_NAME=差出人メールアドレス名称 |
SQLの実行ログを自動記録する
初期設定ではSQLの実行ログを記録できませんが、
設定を追加することで自動的に記録することができます。
こちらのサイトを参考にさせていただきました。