- 投稿日:2020-08-01T21:14:32+09:00
Laravel factoryを使ってテストデータを流し込む
開発において必須のテストデータの流し込みの備忘録です。。。
※データベース、モデル、マイグレーション完了時からのお話です。Factoryを作る
php artisan make:factory [モデル名]Factory
例)
php artisan make:factory RecipeFactory
↑クラス名は大文字注意<?php /** @var \Illuminate\Database\Eloquent\Factory $factory */ use App\Model; use Faker\Generator as Faker; $factory->define(Model::class, function (Faker $faker) { return [ // ]; });こういうのができます。
//のところに入れたいデータを書き込んでいきましょう
<?php /** @var \Illuminate\Database\Eloquent\Factory $factory */ use App\Recipe; ←ここ要書き換え!! use Faker\Generator as Faker; $factory->define(Recipe::class, function (Faker $faker) { return [ ↑ここも要書き換え!! 'user_id' => $faker->numberBetween($min = 1, $max = 10), 'name' => $faker->realText($maxNbChars = 10, $indexSize = 1), 'liqueur' => $faker->numberBetween($min = 1, $max = 10), 'time' => $faker->numberBetween($min = 1, $max = 10), 'invention' => $faker->numberBetween($min = 1, $max = 10), ]; });ここで気を付けたいのは
use App\Model;
を書き換えること!
矢印で示しておきました。ここでモデルを指定してあげないと
InvalidArgumentException : Unable to locate factory with name [default] [App\Recipe].
てな感じでエラーが出ちゃいます(><)
Seederを作る
$php artisan make:seeder [ファイル名]
例)
php artisan make:seeder RecipesTableSeeder
こんな感じ
デフォルトで入っているUsersTableSeederを参考にしてみてください。<?php use Illuminate\Database\Seeder; class AdminTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { // } }中身はこんな感じ
function run()の中に、Factoryでダミーデータ何個作るかを記述する。
<?php use Illuminate\Database\Seeder; class RecipesTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { factory(\App\Recipe::class, 10)->create(); } }これで10個データができます
最後に、、、
DatabaseSeeder.phpの更新
<?php use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { /** * Seed the application's database. * * @return void */ public function run() { $this->call(UsersTableSeeder::class); ←元から入ってるよ $this->call(RecipesTableSeeder::class); ←こいつを追加 } }ラスト
$php artisan db:seed
で実行あれなんかおかしいよって人は
composer dump-autoload
試してみてください。
- 投稿日:2020-08-01T17:20:22+09:00
【Laravel】Artisanコマンド基礎
Artisanコマンドとは
- PHPのフレームワークであるLaravel専用のコマンド
- Artisanコマンド使用することでモデルやコントローラを簡単に作成することが出来る
アプリケーション作成
ターミナルlaravel new アプリケーション名
サーバー立ち上げ
ターミナルphp artisan serve
コントローラ作成
ターミナルphp artisan make:controller コントローラ名
サービスプロバイダー作成
ターミナルphp artisan make:provider サービスプロバイダー名
ミドルアウェア作成
ターミナルphp artisan make:middleware ミドルウェア名
フォームリクエスト作成
ターミナルphp artisan make:request フォームリクエスト名
モデル作成
ターミナルphp artisan make:model モデル名
マイグレーションファイル作成
ターミナルphp artisan make:migration create_テーブル名_table
マイグレーションファイルの実行状況確認
;ターミナルphp artisan migrate:status
マイグレーションを実行
ターミナルphp artisan migrate
マイグレーションファイルのロールバック
ターミナルphp artisan migrate:rollback
シーダーファイルの作成
ターミナルphp artisan make:seeder シーダー名
シーダーを実行する
ターミナルphp artisan db:seed
- 投稿日:2020-08-01T16:43:52+09:00
Ubuntu上Docker(docker-compose)を使ってmysql8,https対応、redis使用のngnix+Laravel環境構築
今まではLaravelのローカル開発環境はVagrant+VirtualBox+Homesteadを使ったが,Vagrant,VirtualBox,OSのバージョンアップにより、数時間をかけて環境を作り直したことがあります。今回は、Dockerを使ったので、下記の記事を参考しながら、環境構築をしてみました。
docker-composeでLaravelの開発環境を整える方法とその解説
とてもわかり易い記事ですが、開発に必要なhttps対応や、Mysql8とRedisなど必要な設定対応がなかったので、メモとしてを整理しました。
★ベストプラクティスかどうか分からないので、ご指摘ください。読む対象:
* docker + laravel 開発者で、 HomesteadからDockerへ移行したい方
* nginxのhttps対応、Mysql8の設定、redisの設定、何れが必要な方ホストマシンOS
Ubuntu18.0.4全体目次:
手順
初期のフォルダー構造
docker-compose.yaml設定
phpコンテナのDockerfile設定
nginxのhttps対応
project source codeダウンロード
mysql8対応設定
redisコンテナと設定
動作確認手順
初期のフォルダー構造
まず/home/user/の下に初期のフォルダー構造を作成します。
├── docker │ └── web │ └── default.conf | └── php | └── Dockfile | └── mysql ├── docker-compose.yml └── project※ projectフォルダーはproject(laravel)source code を入れるところ
ファイル~/docker/docker-compose.yaml, ~/docker/web/default.conf, ~/php/Dockfileの設定は下記になります。docker-compose.yaml設定
~/docker/docker-compose.yaml設定version: '3' services: web: image: nginx:1.18.0 container_name: web ports: - 443:443 depends_on: - app volumes: - ./web/default.conf:/etc/nginx/conf.d/default.conf - ./server.crt:/etc/nginx/server.crt - ./server.key:/etc/nginx/server.key - .:/var/www/html app: build: ./php container_name: app volumes: - .:/var/www/html depends_on: - mysql mysql: build: ./mysql image: mysql:8 container_name: mysql environment: MYSQL_DATABASE: habidodb MYSQL_USER: homestead MYSQL_PASSWORD: secret MYSQL_ROOT_PASSWORD: secret ports: - "3306:3306" volumes: - ./mysql/mysql-confd:/etc/mysql/conf.d - ./mysql/data:/var/lib/mysql redis: image: redis:3.2.12-alpine # 以前はlatestだった container_name: redis ports: - "6379:6379" volumes: - ./redis/data:/data restart: unless-stopped volumes: mysql-data:nginxのhttps対応
(1)~/docker/web/default.conf設定
default.conf設定ssl_protocols TLSv1 TLSv1.1 TLSv1.2; server { listen 80; server_name localhost; return 301 https://$host$request_uri; } server { listen 443 ; server_name localhost; ssl on; ssl_certificate /etc/nginx/server.crt; ssl_certificate_key /etc/nginx/server.key; root /var/www/html/project; index index.php index.html index.htm; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass app:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } }(2)sslキーを作成
自己署名証明書でhttpsアクセスができるコンテナを作るためにsslキーが必要になります。$cd ~/docker $openssl req -x509 -nodes -new -keyout server.key -out server.crt -days 365を実行したら、server.keyとserver.crtを~/dockerの下に確認できました。
phpコンテナのDockerfile設定]
FROM php:7.2-fpm # install composer RUN cd /usr/bin && curl -s http://getcomposer.org/installer | php && ln -s /usr/bin/composer.phar /usr/bin/composer RUN apt-get update \ && apt-get install -y \ git \ zip \ unzip \ vim RUN docker-php-ext-install pdo_mysql RUN apt-get update \ && apt-get install -y libpq-dev \ && docker-php-ext-install mysqli pdo pdo_pgsql RUN pecl install -o -f redis \ && rm -rf /tmp/pear \ && docker-php-ext-enable redis RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - \ && apt-get update \ && apt-get install -y nodejs #Add user for laravel application RUN groupadd -g 1000 teiri && \ useradd -u 1000 -ms /bin/bash -g teiri teiri # Install Node RUN apt-get update &&\ apt-get install -y --no-install-recommends gnupg &&\ curl -sL https://deb.nodesource.com/setup_10.x | bash - &&\ apt-get update &&\ apt-get install -y --no-install-recommends nodejs &&\ npm config set registry https://registry.npm.taobao.org --global &&\ npm install --global gulp-cliproject source codeダウンロード
※既に自分のPCにプロジェクトソースコード管理している場合は下記の部分をスキップできます。
projectソースコード用フォルダー作成$mkdir ~/docker/projectname $cd ~/docker/habidogit初期化
$cd ~/docker $git initlaravelプロジェクトのソースコード取得
$git remote add origin 追加したいリポジトリ $git clone リポジトリのURL~/docker/projectnameのフォルダーが作成されることが確認できます。
laravelインストールcomposer installでcomposer.jsonに定義されているlaravel framesなど必要なパッケージをインストールします。
$composer install※Homesteadの環境よりずっと速い!
mysql8対応設定
.envファイルを設定
必要があれば、DBの設定をdocker-compose.yamlと一致するようにします
例:DB_HOST="mysql" DB_PORT=3306 DB_DATABASE="habidodb" DB_USERNAME="homestead" DB_PASSWORD="secret"MySQL8.0.4以降 のログイン認証方式は caching_sha2_password がデフォルトなので、
もしmysql 5.* からmysql8に変更した場合は認証方式の設定を変更する必要があります。(1)mysqlのコンテナに入る
コンテナを起動
$docker-composer up -d$docker exec -it {mysql_container_name} bash(2)rootユーザとしてログイン,passwordはdocker-compose.yamlの中の設定一致する必要があります。
$mysql -uroot -p認証方式を変更
ALTER USER 'homestead'@'%' IDENTIFIED WITH mysql_native_password BY 'secret';注)↑のコマンドに使うユーザとパスワードはdocker-compose.yamlに設定された内容が一致する必要があります。
変更を反映するために、コンテナ再起動
$docker-compose down $docker-compose up -dプロジェクトのデータベーステーブル作成
appコンテナに入るdocker exec -it --user {username} app bashcd project フォルダー
cd /var/www/html/project$ php artisan migrate必要なSeed data作成
$ php artisan db:seedredisコンテナと設定
redisのIPアドレス確認
docker inspect redis | grep "IPAddress"
.envでRedis設定
REDIS_HOST="172.23.0.2" REDIS_PASSWORD="null" REDIS_PORT="6379"動作確認
最後にブラウザで確認サイト確認
https://localhost
- 投稿日:2020-08-01T14:55:12+09:00
docker-composeで、MySQLの設定ファイル変更を適用させる
何をするのか
docker-composeでMySQLの設定ファイル(my.conf)の中身を更新したが、作り直したコンテナに反映されなかったため、これを反映させる。
環境
- Laravel
- MySQL8.0
- docker-compose version 1.26.2
こちらを参考にDockerでLaravelの環境構築をしていました。
【初心者向け】20分でLaravel開発環境を爆速構築するDockerハンズオン問題が起きた背景
Laravelでは、MySQLのバージョンが8の場合にデータベース接続がうまくできない不具合があります。
MySQLのバージョンが8.0.4以降の場合、デフォルトの認証方式がcaching_sha2_passwordになっており、PHPのMySQL接続ライブラリがcaching_sha2_passwordに対応していないため、MySQLに接続できない(ログインできない)というエラーが発生していました。
引用:Laravel+MySQL8.0環境でマイグレートできない場合の原因と対処法
このため、「認証方法を変更」を行いました。
ただ、↓のリンクに「すでに認証方法が対応された」と書かれていたのであえて変更する必要もないと思いMySQLの設定の以下をコメントアウトしました。(これが間違いだった。)
MySQL8.0 認証方式を変更する(Laravel5) - Qiitamy.cnf# MySQL8 caching_sha2_password to mysql_native_password default-authentication-plugin = mysql_native_passwordそのまま
docker-compose up -d —build
してマイグレーションしたらところエラー発生
Illuminate\Database\QueryException SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client (SQL: select * from information_schema.tables where table_schema = routine-share and table_name = migrations and table_type = 'BASE TABLE') at vendor/laravel/framework/src/Illuminate/Database/Connection.php:671 667| // If an exception occurs when attempting to run a query, we'll format the error 668| // message to include the bindings with SQL, which will make this exception a 669| // lot more helpful to the developer instead of just the database's errors. 670| catch (Exception $e) { > 671| throw new QueryException( 672| $query, $this->prepareBindings($bindings), $e 673| ); 674| } 675| +34 vendor frames 35 artisan:37 Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))それならば、さっきのコメントアウトを戻せば大丈夫だろうと思い
docker-compose down
してから
先程のmy.cnfの認証方法変更部分のコメントアウトを戻しました。改めて
docker-compose up -d —build
をします。が、マイグレーションできず、同じエラー画面になります。
解決方法
どうやらデータベース(volumes)がマウントされていると設定が変更されないようでした。
一度データベース(volumes)を削除すればOKなので、、、
docker volume pruneしたところ、マイグレーションまで問題なくできました。
参考にしてもらえたらうれしいです。
以下参考:
DockerのMySQLの環境変数系の設定が反映されないのは余計なデータベースをマウントしているから - QiitaLaravel+MySQL8.0環境でマイグレートできない場合の原因と対処法
Docker: where is docker volume located for this compose file
- 投稿日:2020-08-01T14:42:05+09:00
【Laravel】ルート定義を正規表現付きで設定するには
正規表現の制約設定
Laravelでは、ルートを定義するファイル
routes/web.php
に正規表現を利用してルート定義できます。ルートインスタンスのwhere
メソッドを使用しましょう。
第1引数に制約設定をしたいパラメータ名、第2引数に正規表現を記入します。(例1)routes/web.phpRoute::get('user/{name}', function ($name) { // })->where('name', '[A-Za-z]+');・
name
パラメータは、小文字a~z、大文字A~Zで1文字以上であること
(例2)routes/web.phpRoute::get('user/{id}', function ($id) { // })->where('id', '[0-9]+');・
id
パラメータは、数字0~9で1文字以上であること
(例3)routes/web.phpRoute::get('user/{id}/{name}', function ($id, $name) { // })->where(['id' => '[0-9]+', 'name' => '[a-z]+']);・
id
パラメータは、数字0~9で1文字以上であること
・name
パラメータは、小文字a~zで1文字以上であること例3では
where
メソッドに連想配列を入れて制約設定を行っています。
キーにパラメータ名、値に正規表現という感じです。上記の各々の例を参考に、パラメータの制約が設定できます。「自分で定めた設定のパラメータを正規表現で設定したいんや~!」というときに、この
where
メソッドを活用しましょう。グローバル制約
ルート定義ファイル
routes/web.php
にwhere
メソッドを使用して、1個ずつルートの制約設定をするのも良いですが、指定した正規表現を、ルート定義した全部のルートパラメータに適応させたい場合はapp/Providers/RouteServiceProvider.php
のboot
メソッド内で設定を行いましょう。app/Providers/RouteServiceProvider.php/** * Define your route model bindings, pattern filters, etc. * * @return void */ public function boot() { Route::pattern('id', '[0-9]+'); // 追加した部分 parent::boot(); }
Route::pattern('id', '[0-9]+');
の部分を追加することで、id
パラメータを使用している全ルートで、自動的に「0~9の数字で1文字以上」という制約がかかります。
- 投稿日:2020-08-01T10:28:12+09:00
DockerでLaravel+Apache+MySQLの開発環境を構築する
https://note.com/pocke_techblog/n/n8af813848fa0
上記の記事通りにすすめて、DockerでLaravel+Apache+MySQLの開発環境を構築しましたが、パーミションのエラーが出て解決に手こずったので記録に残しておきます。
作業環境
OS:Windows 10 Pro ver.2004
Docker:version 19.03.12, build 48a66213feDockerのインストール
Dockerのインストール方法については別記事にて解説しているので、まだインストールしていないのであれば参考にしてみてください。
Windows 10 Pro : Dockerをインストールするサンプルコードを準備する
フォルダ構成
フォルダ構成は以下の通りです。
. ├── docker/ │ ├── app/ │ │ ├ Dockerfile │ │ ├ php.ini # PHP設定用のファイル │ │ └ 000-default.conf # Apacheの設定ファイル │ └── db/ │ ├ data/ # MySQLのデータを保存しておくディレクトリ │ └ my.cnf # MySQLの設定ファイル │ ├── src/ # Laravelのソースを格納するディレクトリ └── docker-compose.ymlソースコード
Dockerfile
# どんなdockerイメージを利用して構築をするか FROM php:7.4-apache # 設定ファイルをdockerコンテナ内のPHP、Apacheに読み込ませる ADD php.ini /usr/local/etc/php/ ADD 000-default.conf /etc/apache2/sites-enabled/ # Composerのインストール RUN cd /usr/bin && curl -s http://getcomposer.org/installer | php && ln -s /usr/bin/composer.phar /usr/bin/composer # ミドルウェアインストール RUN apt-get update \ && apt-get install -y \ git \ zip \ unzip \ vim \ libpng-dev \ libpq-dev \ && docker-php-ext-install pdo_mysql # Laravelで必要になるmodRewriteを有効化する RUN mv /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled RUN /bin/sh -c a2enmod rewritephp.ini
docker/app/php.ini[Date] date.timezone = "Asia/Tokyo" [mbstring] mbstring.internal_encoding = "UTF-8" mbstring.language = "Japanese"docker/app/000-default.conf<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/laravelapp/public ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/html/laravelapp/public> AllowOverride All </Directory> </VirtualHost>my.cnf
docker/db/my.cnf[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci [client] default-character-set=utf8mb4docker-compose.yml
docker-compose.yml# Compose fileのバージョン指定 version: '3' # どんなコンテナを立ち上げるか services: # laravelを動かすコンテナ app: # どのポートを開いて繋ぐか。下記はコンテナの80番ポートを開いて、ホストの8000番につなぐ ports: - "8000:80" # 先ほど作ったDockerfileを使って、コンテナをビルドするという指定 build: ./docker/app # コンテナの名前を指定 container_name: laravel_app # コンテナとホスト側のディレクトリを同期する場所の指定。laravelのソースが入る予定の場所 volumes: - ./src:/var/www/html # MySQLを動かすコンテナ db: # Docker HubからMySQL5.7の公式イメージをダウンロードしてくる指定 image: mysql:5.7 container_name: laravel_db # コンテナ内の環境変数を指定。環境変数を渡すとビルド時に設定してくれるDockerイメージがあるので、利用の際はDocker Hubのサイトで確認すると良い environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: laravel_db MYSQL_USER: laravel_user MYSQL_PASSWORD: laravel_pass TZ: 'Asia/Tokyo' # 起動時のコマンド command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci # ディレクトリ同期。設定ファイルとMySQLのデータが保存される場所を同期している。コンテナは基本的に起動時に変更されてもコンテナ自体が止まるとデータが消えてしまうため、保存しておきたいものはホストマシンと同期しておく必要がある。 volumes: - ./docker/db/data:/var/lib/mysql - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf ports: - 3306:3306開発環境を構築する
Docker Composeでコンテナを立ち上げる
次のコマンドを実行して、Docker Composeでコンテナを立ち上げます。
$ docker-compose build $ docker-compose upLaravelのプロジェクトを作成する
上記とは別の画面を立ち上げて次のコマンドを実行して、Laravelのプロジェクトを作成します。
$ docker exec -it laravel_app bash $ composer create-project laravel/laravel --prefer-dist laravelappこれで
http://localhost:8000
にアクセスするとLaravelの画面が立ち上がるはずですが、パーミッションのエラーが起きてしまいました。パーミッションのエラーを解決する
最初に以下のようなエラーメッセージが出ました。
The stream or file "/var/www/html/laravelapp/storage/logs/laravel.log" could not be opened in append mode: failed to open stream: Permission denied
ここのサイトを参考に以下のコマンドを実行しました。
$ chmod 777 /var/www/html/laravelapp/storage/logs/laravel.log $ chmod 775 /var/www/html/laravelapp/storage/logs/すると以下のようにエラーメッセージの文言が変わりました。
file_put_contents(/var/www/html/laravelapp/storage/framework/sessions/oI2ffP9BUcWC0llE0NEoFU09eqQyXTosSZZeq4BV): failed to open stream: Permission denied
ここのサイトを参考に以下のコマンドを実行しました。
chmod -R gu+w /var/www/html/laravelapp/storage chmod -R guo+w /var/www/html/laravelapp/storage cd ./laravelapp php artisan cache:clearこれでパーミッションのエラーが解決して、Laravelの画面が表示されました。
- 投稿日:2020-08-01T04:04:06+09:00
LaravelでAPI単位で接続先DBを切り替える
TL; DR
Laravelでは、接続先のDBのホストのread/write接続が自動的に設定されすが、OracleDatabaseへの接続をyajra/OCI8を用いると、このread/write接続が行えません。
そのため、Middlewareにて、エンドポイント単位で接続先のDBを切り替えます。
環境
- Windows 10
- PHP 7.2
- Laravel 5.5
- Oci8 5
- Oracle database
Middleware作成
今回は、read接続先指定用とwrite接続先指定用のMiddlewareを作成します。
作成手順は、以下の要領です。/var/www/html# php artisan make:middleware ConnectWriteDatabase Middleware created successfully. /var/www/html# php artisan make:middleware ConnectReadDatabase Middleware created successfully.これで、以下のMiddlewareが作成されました。
ConnectWriteDatabase.php
<?php namespace App\Http\Middleware; use Closure; class ConnectWriteDatabase { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { return $next($request); } }ConnectReadDatabase.php
<?php namespace App\Http\Middleware; use Closure; class ConnectReadDatabase { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { return $next($request); } }Middlewareの登録
作成したMidllewareはそのままでは使用できません。そのため、使用できるようにするためには、Karnel.phpへの登録が必要です。通常ですとMiddlewareを全HTTPリクエストに適用するにはGlobal MiddlewareとしてKarnerl.phpへの登録を行う必要があります。
ですが、今回は特定のHTTPリクエストに対してMiddlewareを適用するため、Kernelの
$routeMiddleware
への登録を行います。App\Http\Kernel.php
<?php namespace App\Http; use Illuminate\Foundation\Http\Kernel as HttpKernel; class Kernel extends HttpKernel { /** 省略 */ /** * The application's route middleware. * * These middleware may be assigned to groups or used individually. * * @var array */ protected $routeMiddleware = [ // ここにMidlewareを追加 'connect.write' => \App\Http\Middleware\ConnectWriteDatabase::class, ]; }Middlewareのエンドポイントへの適用
指定したエンドポイントに作成したMiddlewareを適用するには、大きく2つの方法があります。
- routes/api.phpに記載
- ハンドラメソッドのコンストラクタに記載
ここでは、「1.routes/api.phpに記載」の方法をとります。
Laravelでは、Routingの設定では、routesディレクトリ直下のルートファイルで定義をします。
このとき、RouteGroup
を使用することで、複数のRoutingの定義対象に対して、適用するMiddlewareを指定することができます。例:公式ドキュメントRoutingから抜粋
Route::middleware(['first', 'second'])->group(function () { Route::get('/', function () { // firstとsecondミドルウェアを使用 }); Route::get('user/profile', function () { // firstとsecondミドルウェアを使用 }); });この要領で、write接続を行うエンドポイントを定義するRouteメソッドをGroupで定義し、Middleware
connect.write
の指定を行います。例
Route::middleware(['connect.write'])->group(function () { Route::post('/user', '/Api/User/StoreAction'); Route::put('/user/{user}', '/Api/User/UpdateAction'); });