LaravelのFormValidatorでは、validationに失敗すると自動で遷移元のページにリダイレクトされます。 これは、通常の入力フォームでバリデーションを行う場合は、自動的にユーザに再入力を促せるので便利なのですが、この戻り先のページをカスタマイズ...


書籍を裁断し、自宅のスキャナ([Canon MF249](https://www.amazon.co.jp/dp/B01LVYW3K1))でスキャンした画像(ファイル名連番のjpgファイル)からスキャンした画像の余白を取り除く作業をしたので、その時のメモです。 ## 書籍の裁断 書籍の裁断近くに...


LaravelではMailクラスによってメール送信処理を簡単に作ることができます。 ローカル開発やPHPUnitでは、実際にメールを送信させるのではなくファイルに出力させるなど、メールの送信メソッドがコールされた時の振る舞いを差し替えたい場合があります...


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で.envを書き換えた内容が反映されない時は、artisan config:clearする。cache:clearではクリアできないので注意。 ```language-php php artisan config:clear ``` ファイルを直接消す場合は以下のコマンドを実行する。 ```language-bas...


Laravel7が標準で用意しているAuthでログインした時で行われていることを確認する。 (何度も同じことを調べるので、調べた結果をメモしておく) ​ ​ ​ ## GET /login ​ ログイン画面が表示される。 id/passを入力してLoginボタンをクリックすると`P...


## 発生した事象 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...


DockerでPHP7.4のコンテナを使ってhello worldを出力する最低限のコードです。 php-fpmの設定などでハマって問題の切り分けが難しい時などに覚えておくと便利です。 ## プログラムを用意 ```language-bash mkdir -p src/public echo '


LaravelのEloquentでsum()やavg()の集計関数を使うと、結果が数字でなく文字列で返ってきます。 ```language-php $totalScore = UserScore::where('team_id', $teamId)->sum('get_point'); \Log::info(json_encode($totalScore)); // "10" (10では...


PHPにはユニットテストを行う仕組みとしてPHPUnitがあります。 PHPのパッケージphpunit-watcherを使うことで、プログラムのソースが変更(Ctrl-Sで保存)されるたびに自動でPHPUnitを実行させることができます。 ## インストール phpunit-watcherの...


Macでhomebrewを使ってphp7.3をインストールする

2019年10月29日 | カテゴリ: Mac, PHP | タグ:
macOSでhomebrewを使って、php7.3をインストールする方法です ## 作業手順 macに入っているphpのバージョンを確認します。手元の環境では7.1でした。 ```language-bash $ php -v PHP 7.1.19 (cli) (built: Aug 17 2018 18:03:17) ( NTS ) Copy...


Dockerfileの公式phpコンテナを使っていて、標準で入っていないextensionを追加したい時があります。 このような場合に備えて、公式コンテナではdocker-php-ext-installコマンドを用意してくれています。 以下のようにRUNコマンドを記述することで希...


PHPでクラスのコンストラクタは、引数がない場合はカッコを省略することができます。 ```language-php // どちらも書き方もOK $a = new SomeClass(); $a = new SomeClass; ``` どちらの書き方でも同じ動作をするのですが、どちらの表記法にした...


PHPでハッシュの配列(DBの検索結果など)を、特定のキーでグループかする方法です。 ## Laravelの場合 Laravelの場合はcollectオブジェクトにgroupBy()メソッドがあるため、これを利用できます。 ```language-php $collection = collect([ ...


Laravelでvue.jsを使用して、vuejs.orgの"はじめに"に書かれている"Hello Vue!"を表示させようとすると、下記のエラーが出ることがあります - 作成したhtmlの例 ```language-html {{ message }} ``` - エラーメッセージの例 ```langua...


複数のデータを扱うプログラムを作る時、各データ系列ごとに適切な色を割り当てて表示させたい場合があります。 PHPスクリプトからこのような事を行いたい場合、PHLAK/Colorizerパッケージが役に立ちます。 PHLAK/Colorizerパッケージでは、文字列を...


適当なファイルを作って、下記のphpスクリプトを実行すると、ファイルの内容がURLエンコードされます。 ```language-bash cat foo.txt | php -R 'echo(urlencode($argn).PHP_EOL); ``` phpコマンドのオプション'-R'は標準入力1行づつに対して指...


PHPのデプロイツールであるDeployerで、ターゲットのサーバへSSHログインするときのSSHキーファイルを指定する方法です。 ## inventory()でファイルを指定する場合 inventory()メソッドを使ってサーバの接続情報を管理7得る場合は、以下のように、iden...


今回は、前回作成した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のfile_get_contents()では通常GETでリクエストを送信しますが、POSTでリクエストを投げたい場合があります。 このような場合はfile_get_contents()の第3引数を使えば良いです。 ```language-php


PHPでフォームに入力されたテキストを1行づつ処理させたい場合は、`str_replace()`と`explode()`関数を組み合わせると便利です ## サンプルプログラム 下記のプログラムは、GETパラメータで渡されたテキストを改行文字で区切って、1行づつ処理する...


[PHP]macにComposerをインストールする

2018年4月30日 | カテゴリ: composer
macOS上にcomposerをインストールするためには下記のコマンドを実行すれば良い。 ```language-bash php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09...


PHPのデプロイメントツールDeployerを実行すると下記のエラーが出る事があります。 ```language-bash $ dep deploy Deploy locked. Execute "dep deploy:unlock " to unlock. ``` ## 原因 Deployerはデプロイメントを実行時に多重実行されな...


Laravel5.5のコントローラー入門

2018年3月3日 | カテゴリ: Laravel
この記事では、PHPのフレームワークであるLaravelで、MVCのコントローラーについての基本を説明します。 ## コントローラの作成 Laravelでは、artisanの`make:controller`コマンドで、MVCのコントローラーに相当するクラスのひな型を作ることがで...


Laravel5.5のルーティング入門

2018年3月2日 | カテゴリ: Laravel
この記事では、PHPのフレームワークであるLaravelのルーティングの基本について説明します。 ## インストール直後のルーティング Laravelプロジェクトを作成した直後に`php artisan serve`コマンドを実行し、ブラウザからhttp://localhost:8000/へ...


Laravelのcomposer.jsonを見ていたら見つけたのでメモ。 以下のワンライナーPHPスクリプトで、.envというファイルが無かったら、ファイル".env.example"を.envにコピーすることができます。 ```language-php php -r "file_exists('.env') || copy('...