docker-composeをつかってLaravel9とPHP8.0の実行環境を構築する手順を説明します。
コンテナはnginxとphp-fpmを使う方法もありますが、今回は本番環境へデプロイを容易に行えることを考慮してapacheをwebサーバにします。
## Laravelをインストール
...
Laravelでは文字列操作のためのヘルパクラスとして、Strクラス(Illuminate\Support\Str)が用意されています。
これのFluent版のメソッドを使うとメソッドチェーンで文字列を加工できるのでコードを簡潔に書くことができます。
```language-php
$str...
PHPにはphpcsというコードチェッカがあります。
実行することで問題があるコードをチェックでき、どのファイルに問題があるかが一目でわかります。
```language-bash
$ docker-compose exec app vendor/bin/phpcs
...
FILE: /var/www/html/app/...
LaravelのStrorageクラスでは、copy()メソッドでファイルをコピーすることができます。ですが、これはコピー元と先が同じdisk定義されている必要があります。
この記事では、異なるdisk間でファイルをコピーする方法を説明します。
## 前提
confi...
Laravelでcomposerを利用したクラスのオートロードがうまくいかない場合、下記のワンライナーでComposerが持っているクラスマップをダンプできます。
```language-bash
% ./artisan tinker
Psy Shell v0.10.5 (PHP 7.3.11 — cli) by Justin Hileman
...
LaravelのFormValidatorでは、validationに失敗すると自動で遷移元のページにリダイレクトされます。
これは、通常の入力フォームでバリデーションを行う場合は、自動的にユーザに再入力を促せるので便利なのですが、この戻り先のページをカスタマイズ...
Laravel6のプロジェクトを`composer update`コマンドでLaravel7にアップデートする機会があったので手順を書いておきます。
## composer.jsonの編集
composer.jsonを更新するのですが、Laravel7のアップグレードに関するガイドをみると下記の記載が...
LaravelではMailクラスによってメール送信処理を簡単に作ることができます。
ローカル開発やPHPUnitでは、実際にメールを送信させるのではなくファイルに出力させるなど、メールの送信メソッドがコールされた時の振る舞いを差し替えたい場合があります...
Laravelではauthパッケージのセットアップを行うと、routes/web.phpに下記の1行を書くだけでルーティングが自動設定されます。
```language-php
Auth::routes();
```
どうして1行書くだけでルーティングを設定できるのでしょうか? Auth::routes()...
メモ。
- [jwt-auth + Laravel6 アクセストークンとリフレッシュトークン](https://www.yuulinux.tokyo/15384/)
LaravelでVue.jsを使用したSPAサイトを作成していて、Basic認証とjwtトークン認証の組み合わせが必要だったのでメモ。
## 作ったもの
Vue.jsによるhtmlと、WebAPIによる非同期データ取得によるサイト構築を行った。
- WebAPIエンドポイント
...
LaravelでWebAPIサーバを作成する時、クロスドメインアクセスを行うためにCORSの処理を作成する場合があります。技術検証などでどこからでもアクセスできるCORSの処理をてっとり作ることが何度か発生したので手順をメモしておきます。
## middlewareを...
LaravelでCORS処理を行いたい場合、barryvdh/laravel-corsパッケージを使うと便利です。
## 作業手順
### パッケージのインストール
```language-bash
composer require barryvdh/laravel-cors
```
### middlewareの有効化
```language...
Laravelではリソースコントラーを使うことで、CRUD処理でよく使われるルーティングを簡単に登録することができる。
## 作業手順
artisanコマンドでコントローラを追加。リソースコントローラは`artisan make:controller`にオプション`--resource`...
Laravelで.envを書き換えた内容が反映されない時は、artisan config:clearする。cache:clearではクリアできないので注意。
```language-php
php artisan config:clear
```
ファイルを直接消す場合は以下のコマンドを実行する。
```language-bas...
Laravel7が標準で用意しているAuthでログインした時で行われていることを確認する。
(何度も同じことを調べるので、調べた結果をメモしておく)
## GET /login
ログイン画面が表示される。
id/passを入力してLoginボタンをクリックすると`P...
## 発生したエラー
Deployerで`./dep deploy`コマンドでデプロイしようとしたところ、`package:discover`のステップでエラーが発生した。
```language-php
$ ./dep deploy xxxx
In Client.php line 103:
[Deployer\Exception\RuntimeExceptio...
## 発生した事象
Laravel7 + Vue.jsの開発で、`npm run hot`を実行したところ、EADDRINUSE / ELIFECYCLEエラーが発生し、ビルドが出来なかった。
```language-bash
$ npm run hot
> @ hot /.../project
> cross-env NODE_ENV=development node_...
composer.jsonにdockerコマンドを書いておくことで、laravelのプロジェクトを(PHPのビルトインサーバではなく)php-fpmを使ってコマンド1つで起動させることができます。
## 作業手順
まず`composer.json`に下記の行を追加します。
```language-j...
Laravelプロジェクト作成時のテンプレート作成時に実行するコマンド
```language-bash
composer global require laravel/installer
#--------------------------------------------------------
# create prject
#------------------------------...
Laravelのメール送信で、AWSのSES(Simple Mail Service)を利用する場合、Laravelが提供しているsesドライバを使うと簡単にメール送信処理が実装できます。
本記事では、Laravelのsesドライバを使用して上手くメール送信ができない時に、ありがちな問題...
LaravelのEloquentでsum()やavg()の集計関数を使うと、結果が数字でなく文字列で返ってきます。
```language-php
$totalScore = UserScore::where('team_id', $teamId)->sum('get_point');
\Log::info(json_encode($totalScore)); // "10" (10では...
関連ドキュメント
- [Qiita: Laravel tymon/jwt-auth による JWT 認証](https://qiita.com/yh1224/items/3c52dd9df3c4b5be95f2)
- [JSON Web Token Authentication for Laravel & Lumen](https://jwt-auth.readthedocs.io/en/develop/)
- [jwt.io](ht...
Laravelは、`artisan make:request`コマンドで入力パラメータをvalidtionできるFormRequestクラスを作成できます。
artisanコマンドで作成したFormRequestを編集せずに使用すると`This action is unauthorized.`が出るので注意が必要です。
## エラ...
Laravelでvue.jsを使用して、vuejs.orgの"はじめに"に書かれている"Hello Vue!"を表示させようとすると、下記のエラーが出ることがあります
- 作成したhtmlの例
```language-html
{{ message }}
```
- エラーメッセージの例
```langua...
Laravelでプロジェクトを作成して、プログラムを実行しようとすると下記のエラーが発生する場合があります。
```language-bash
UnexpectedValueException
The stream or file "/path/to/storage/logs/laravel.log" could not be opened:
failed to op...
今回は、前回作成したnginx + phpの環境にLaravelをインストールしてみます。
- [CentOS 7.5のf1-microインスタンスにnginx, php-fpm, php7.2環境を作る](https://akamist.com/blog/archives/3256)
- [CentOS 7.5のf1-microインスタンスにswap領域を追...
PHPのフレームワークであるlaravelをcomposerからインストールしようとすると、以下のようにエラー"laravel/framework vX.X.X requires ext-mbstring"が出ることがあります。
```language-bash
$ /usr/local/bin/composer create-project --prefer-dis...
この記事では、PHPのフレームワークであるLaravelで、MVCのコントローラーについての基本を説明します。
## コントローラの作成
Laravelでは、artisanの`make:controller`コマンドで、MVCのコントローラーに相当するクラスのひな型を作ることがで...
この記事では、PHPのフレームワークであるLaravelのルーティングの基本について説明します。
## インストール直後のルーティング
Laravelプロジェクトを作成した直後に`php artisan serve`コマンドを実行し、ブラウザからhttp://localhost:8000/へ...
PHPフレームワークのLaravelで、使用しているフレームワークのバージョンを確認するには、atrisanコマンドで"-V"オプションを指定すればよいです。
```language-php
$ php artisan -V
Laravel Framework 5.6.4
```
Laravelのプログラムを実行すると、下記のエラーが出ることが有ります。
```language-php
RuntimeException
No application encryption key has been specified.
```
これはエラーメッセージ通り、Laravelプロジェクトに暗号化キーが未設定のため...
PHPフレームワークのLaravelをWindows環境で使っていて、php artisan serveコマンドを実行すると下記のエラーが出て起動できなかったので、確認&対処した結果を書いておきます。
## 出力されたエラー
`php artisan serve`コマンドで起動させようと...
PHPのフレームワークLaravelに付属のEloquentでは、デフォルトでデータの登録・更新時刻をそれぞれ、created_at, updated_at列で管理してくれます。
通常はこれで問題ないのですが、履歴テーブルのようにデータの登録だけが行われ、更新されない事が事...
Illuminate/DatabaseパッケージのgetQueryLog()は、実行されたSQLとパラメータに加えて、処理時間をtimeのキーで取得できます。手元の環境で1~2ぐらいの値が帰ってくるので絶対ミリ秒単位だろうと思ったのですが、気になったので調べました。
結果を先...
PHPのフレームワークLaravelで、フレームワークのインストールから、DBの設定とcliでのDB操作まで行ってみます。
今回、接続先のDBはVagrant上に構築したMySQLを利用しています。
VagrantでのMySQLデータベース作成は、下記の記事を参考にすると`v...
Laravel5.5で`php artisan migrate`した時に下記のエラーが発生することがあります。
```language-bash
$ php artisan migrate
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key wa...