Laravel
環境 Laravel11 + Breeze + Inertia.js + React でユーザーログイン周りのScaffoldを作った。 操作は全てReactからのAPIコール AuthはStatefulAPIを使って、Sanctumで行う。Routeにミドルウェアを Route::middleware('auth:sanctum')って感じ。 ログイン後に…
たとえばこんなコードで user(); if (in_array(HasApiTokens::class, class_uses($sanctum_user))){ // @phpcs:ignore $sanctum_user->tokens()->delete(); } Undefined method 'tokens'.intelephense(P1013) とか出る。ChatGPTに聞いて // @phpcs:ignore と…
Laravel+Inertia.js+Reactの構成で作ってくれたScaffoldをそのまま使おうとしたけど、どうも import { useForm } from '@inertiajs/react'; の useFormで作った const { get, post, patch, delete } = useForm({ name: user.name, email: user.email }); の…
タイトルだけだとわけわからんね。 課題 管理画面と一般画面を分けたくて、別のReactにしている。こういう時に管理画面のJavaScriptも見せたくないので、2つのReactを1つのLaravelに同居させるようにしている。 Laravel のInertia.js+Reactって、Devモードだ…
前にも書いた記事LaravelでEthnaのフォームフィルターみたいなやつ - tohokuaikiのチラシの裏 が2024年ではcomposerでインストールできなくなっていた。Laravelのバージョンとかそんな感じ。 で、調べたらGitHub - elegantweb/sanitizer: Sanitization libra…
Inertia.js使ってReactで管理画面の開発してると、「CSRFとかXSSとかどないやねん?」って感じになる。Sanctumを使ったSPA認証ってのがあるみたいだ。 laravel.com 2つ認証にたいするアプローチがあって、 APIトークンを付与してそのトークンのやり取りで認…
やりたいこと 管理者を作って、管理画面は別レイアウトのダッシュボードにて作業できること。 Reactで開発できる CoreUIを使ってデザインできる ライブラリの選定 管理画面テンプレート/UI MoonShineはReact使うのにエントリポイントを作りにくかったり、レ…
Laravelのインストールまでは終わっているものとして。というか、dockerのbitnami/laravel:latestを使ってDocker composeでこんな感じで作ってる。 認証周り(ユーザー作成とか) laravel.com Laravel公式のスターターキットには、Laravel BreezeとLaravel J…
環境変数の読み込みってどーなんってんのよ? Laravelで環境変数を使う時、DBの設定とかAPP_NAMEとか、.envに書いたのをconfig経由で使います。 一方、LaravelのViteでコンパイルしたTypeScriptなんかも.envに書いたのを環境変数として使います。 で、「問題…
Laravel11はもうインストールされているものとする。Dockerならbitnami/laravel:11.1.1あたりを持ってくるとすぐできる。 ReactはTypeScriptです。 Tailwindcssの導入 npmでインストール とりあえず、本体と使いそうなライブラリ2つ。(ライブラリはいらんか…
もうね、なんか大変だったので記事にとっておく。 参考にしたのは、Laravelの公式の方じゃなくてInertiajsの方 Server-side setup - Inertia.js Client-side setup - Inertia.js バージョンとか環境周りとか このあたり重要。鳥獣用。OSはWindows11です。 バ…
どんな要望やねん…ていうか、こんな感じですね。 laravel.io Controllerの中で、 render(); // $text = 'This is bar.'; 結構この手の質問は見かけられるんだけど、どれも5年以上前ので。 ヘルパ関数ひとつ作れっていう回答 こんな感じ laracasts.com
JavaScriptのDate objectが飛んでくるので ミューテタを使って attributes['payment_date'] = $value ? Carbon::parse($value) ->timezone(config('app.timezone'))->format('Y-m-d 00:00:00') : null; } ってやっていい感じにしてあげないとダメっぽい。え…
TEXTフィールドにNULLはダメだよってDBから怒られてしまう。 空文字列にしてくれればいいのに… ということで、こんな感じで間に合わせ。 etc)) { $post->etc = ''; } }); } } なんかいい方法ないかな…
JSONで投げられる値で { address: "Tokyo", entries: [ {name: "", email: ""}, {name: "", email: ""} {name: "", email: ""} ] } みたいなのをValidateしたい時。 単にVlidateすればいい場合 FormRequestのルールに ['required'], ]; } と書いておけばい…
つまり、Requestのメソッドを使いたかったんだけど、それはできないみたいなのでクロージャを使った。 [ 'required', $my_validate, こんな感じ。 requiredを満たした時、この$my…
この辺りを読んでて… readouble.com route/api.phpに name('user.create.confirm')->middleware('can:confirm,App\User'); Route::post('user/{user}/confirm', 'UserController@confirm')->name('user.update.confirm')->middleware('can:confirm,App\User'…
以前書いたコレ。 tohokuaiki.hateblo.jp Providerで実装する。 Providerを作る こちらを参考に。 qiita.com app/Providers/DataBaseQueryServiceProvider.php
ユーザーのダミーデータ登録 database/seeds/DatabaseSeeder.php に create(); と、config/app.php に 'ja_JP', として、 ./artisan db:seed で10件生成。
make authしてから $ ./artisan make:auth は、Laravelの古い奴だっけ… じゃなくて $./artisan ui vue --auth してから、 APIでもSessionを効かす app/Http/Kernel に [ // 省略 ], 'api' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Co…
1年前のこれの続き tohokuaiki.hateblo.jp LaravelプロジェクトをVueベースで管理画面まで よくある感じで。 $ composer create-project laravel/laravel=6.* --prefer-dist junoe_app $ composer require laravel/ui=1.* $ ./artisan ui vue --auth $ ./art…
開発して、本番環境にDeployのたびにsshログインしてmigrateとかするのが面倒…というか忘れるので、Deployerというのを使った。 インストール composerからインストール LaravelアプリケーションDirectoryでComposerでインストール。 $ php -d memory_limit=…
あるControllerを継承した別のControllerで authorizeResource(Order::class, 'order'); したら、Policyがスルーされてしまった。 authorizeResource()の引数は何に使われるのか? 第一引数から、Policyが設定される。上の場合だと、OrderPolicyになる。 第…
何気なくsassを書き直したら、npm run watchしてるのが無限ループしてた… 原因は画像のタイムスタンプ? 原因を探ってみると、 header { background-image: url("../images/icon_header.png"); } が原因っぽい。 試しに、npm run prodしてみると、無事にコン…
最初、 <router-view app_name="{{ config('app.name') }}"></router-view> とかしてたけど、こんなの逐一やってらんねー。 検索したけどあんまり見つからない…ajaxで渡せとかそんな面倒なこと… ということで、「ぼくのかんがえるさいきょうのLaravelからVueへの変数の渡し方」 Laravel 側 Controllerで変数を渡す config('a…
LaravelのユーザーテーブルのEmailのUNIQUEが掛けられなかった。 Server version: 5.5.65-MariaDB MariaDB Server SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `u…
Laravel Apacheのhttpd.confにてバーチャルホスト設定にAliasを書く <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName www.example.com DocumentRoot /home/vagrant/htdocs Alias /subdirectory_name "/home/vagrant/laravelapp/public" <Directory "/home/vagrant/laravelapp/public"> Options FollowSymLinks</directory></virtualhost>…
プロキシだとhttpでアクセスするのでその周りだろうなってことで このあたりでエラーが出ている。 vendor/aacotroneo/laravel-saml2/src/Aacotroneo/Saml2/Http/Controllers/Saml2Controller.php の acs(); の所のエラーが array(2) { ["error"]=> array(1) …
config/filesystems.php に入っているので、 file('foo')->store()する際には、 config('filesystems.disks.public.root'); のpublicが付いてるっぽいので、後で取るといは、 config('fil…
あれな。Inputの時にPOST値を自動的に全角から半角にしてくれたりするやつ。あれ、すげー便利なんだけど、Laravel本体にはないらしい。 waavi/sanitizerをインストール composerにあるので https://packagist.org/packages/waavi/sanitizer $ composer requi…