Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

tohokuaikiのチラシの裏

技術的ネタとか。

Laravel

Laravel Breeze(Inertia.jsは+React)でユーザーのパスワード変更をしたらTokenがマッチしなくなった件

環境 Laravel11 + Breeze + Inertia.js + React でユーザーログイン周りのScaffoldを作った。 操作は全てReactからのAPIコール AuthはStatefulAPIを使って、Sanctumで行う。Routeにミドルウェアを Route::middleware('auth:sanctum')って感じ。 ログイン後に…

VSCodeでLaravelを使っているとintelephenseが"Undefined method 'xxxxx'.(P1013)"のWarningを出して困っている

たとえばこんなコードで user(); if (in_array(HasApiTokens::class, class_uses($sanctum_user))){ // @phpcs:ignore $sanctum_user->tokens()->delete(); } Undefined method 'tokens'.intelephense(P1013) とか出る。ChatGPTに聞いて // @phpcs:ignore と…

Inertia.js+ReactのAjaxって、Reactコンポーネントを返すんだ…

Laravel+Inertia.js+Reactの構成で作ってくれたScaffoldをそのまま使おうとしたけど、どうも import { useForm } from '@inertiajs/react'; の useFormで作った const { get, post, patch, delete } = useForm({ name: user.name, email: user.email }); の…

Laravel Breeze(Inertia.js + React)で、ログイン後に別のReactに移動するのをしたかった。

タイトルだけだとわけわからんね。 課題 管理画面と一般画面を分けたくて、別のReactにしている。こういう時に管理画面のJavaScriptも見せたくないので、2つのReactを1つのLaravelに同居させるようにしている。 Laravel のInertia.js+Reactって、Devモードだ…

LaravelでEthnaのフォームフィルターみたいなやつ(2024年版)

前にも書いた記事LaravelでEthnaのフォームフィルターみたいなやつ - tohokuaikiのチラシの裏 が2024年ではcomposerでインストールできなくなっていた。Laravelのバージョンとかそんな感じ。 で、調べたらGitHub - elegantweb/sanitizer: Sanitization libra…

Laravel11でSanctumをやってみようと思ったけど、セッションログインでいいじゃんって

Inertia.js使ってReactで管理画面の開発してると、「CSRFとかXSSとかどないやねん?」って感じになる。Sanctumを使ったSPA認証ってのがあるみたいだ。 laravel.com 2つ認証にたいするアプローチがあって、 APIトークンを付与してそのトークンのやり取りで認…

Laravel11のテンプレートにCoreUIを導入して、Inertia.jsで管理者だけテンプレートレイアウトを分けてみる。

やりたいこと 管理者を作って、管理画面は別レイアウトのダッシュボードにて作業できること。 Reactで開発できる CoreUIを使ってデザインできる ライブラリの選定 管理画面テンプレート/UI MoonShineはReact使うのにエントリポイントを作りにくかったり、レ…

Laravel11で認証とかInertia.jsとかを入れて管理画面にMoonShineを導入するまで

Laravelのインストールまでは終わっているものとして。というか、dockerのbitnami/laravel:latestを使ってDocker composeでこんな感じで作ってる。 認証周り(ユーザー作成とか) laravel.com Laravel公式のスターターキットには、Laravel BreezeとLaravel J…

Laravelとそこで使うViteの環境変数の読み込み

環境変数の読み込みってどーなんってんのよ? Laravelで環境変数を使う時、DBの設定とかAPP_NAMEとか、.envに書いたのをconfig経由で使います。 一方、LaravelのViteでコンパイルしたTypeScriptなんかも.envに書いたのを環境変数として使います。 で、「問題…

Laravel11でReact(TypeScript)とTailwindcss(SASS)を使う

Laravel11はもうインストールされているものとする。Dockerならbitnami/laravel:11.1.1あたりを持ってくるとすぐできる。 ReactはTypeScriptです。 Tailwindcssの導入 npmでインストール とりあえず、本体と使いそうなライブラリ2つ。(ライブラリはいらんか…

DockerでLaravel+Inertia.jsでReactを動かすところまでやってみる。

もうね、なんか大変だったので記事にとっておく。 参考にしたのは、Laravelの公式の方じゃなくてInertiajsの方 Server-side setup - Inertia.js Client-side setup - Inertia.js バージョンとか環境周りとか このあたり重要。鳥獣用。OSはWindows11です。 バ…

LaravelのBladeで生のStringをテンプレートとしてParseする

どんな要望やねん…ていうか、こんな感じですね。 laravel.io Controllerの中で、 render(); // $text = 'This is bar.'; 結構この手の質問は見かけられるんだけど、どれも5年以上前ので。 ヘルパ関数ひとつ作れっていう回答 こんな感じ laracasts.com

LaravelでDateをAPIからPATCHする時

JavaScriptのDate objectが飛んでくるので ミューテタを使って attributes['payment_date'] = $value ? Carbon::parse($value) ->timezone(config('app.timezone'))->format('Y-m-d 00:00:00') : null; } ってやっていい感じにしてあげないとダメっぽい。え…

LaravelのEloquentでDBに登録する時にTEXTなフィールドがNULLでINSERTしようとして困ってしまう件

TEXTフィールドにNULLはダメだよってDBから怒られてしまう。 空文字列にしてくれればいいのに… ということで、こんな感じで間に合わせ。 etc)) { $post->etc = ''; } }); } } なんかいい方法ないかな…

Laravelの配列をValidateする時の指定とかエラーメッセージの加工とか

JSONで投げられる値で { address: "Tokyo", entries: [ {name: "", email: ""}, {name: "", email: ""} {name: "", email: ""} ] } みたいなのをValidateしたい時。 単にVlidateすればいい場合 FormRequestのルールに ['required'], ]; } と書いておけばい…

LaravelのRequestを使ったForm ValidateにRequestクラス内共通の処理を使いたかった

つまり、Requestのメソッドを使いたかったんだけど、それはできないみたいなのでクロージャを使った。 [ 'required', $my_validate, こんな感じ。 requiredを満たした時、この$my…

LaravelでPolicyを追加する時に、ModelがInjectionしてくれなくて困った件

この辺りを読んでて… 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'…

LaravelでSQLログを出力するのをProviderで実装する

以前書いたコレ。 tohokuaiki.hateblo.jp Providerで実装する。 Providerを作る こちらを参考に。 qiita.com app/Providers/DataBaseQueryServiceProvider.php

Laravelの俺メモTIPS

ユーザーのダミーデータ登録 database/seeds/DatabaseSeeder.php に create(); と、config/app.php に 'ja_JP', として、 ./artisan db:seed で10件生成。

LaravelのAuthをAPIで効かす時にいつも忘れるのでデジタルタトゥーに刻みたい

make authしてから $ ./artisan make:auth は、Laravelの古い奴だっけ… じゃなくて $./artisan ui vue --auth してから、 APIでもSessionを効かす app/Http/Kernel に [ // 省略 ], 'api' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Co…

LaravelでAdminlteをjeroennoten/Laravel-AdminLTE使ってちゃんと導入してみる

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…

Deployerを使ってLaravelを本番環境にデプロイする場合のsshの接続設定

開発して、本番環境にDeployのたびにsshログインしてmigrateとかするのが面倒…というか忘れるので、Deployerというのを使った。 インストール composerからインストール LaravelアプリケーションDirectoryでComposerでインストール。 $ php -d memory_limit=…

Laravelで"This action is unauthorized."と出て、Policy設定してるのに…とModelの関係を追ってみた件

あるControllerを継承した別のControllerで authorizeResource(Order::class, 'order'); したら、Policyがスルーされてしまった。 authorizeResource()の引数は何に使われるのか? 第一引数から、Policyが設定される。上の場合だと、OrderPolicyになる。 第…

laravel-mixでnpm run watchしたら無限ループに陥ったので対処したこと

何気なくsassを書き直したら、npm run watchしてるのが無限ループしてた… 原因は画像のタイムスタンプ? 原因を探ってみると、 header { background-image: url("../images/icon_header.png"); } が原因っぽい。 試しに、npm run prodしてみると、無事にコン…

Laravelのview(bladeテンプレート)からVue.jsにグローバルパラメータを渡したい時など

最初、 <router-view app_name="{{ config('app.name') }}"></router-view> とかしてたけど、こんなの逐一やってらんねー。 検索したけどあんまり見つからない…ajaxで渡せとかそんな面倒なこと… ということで、「ぼくのかんがえるさいきょうのLaravelからVueへの変数の渡し方」 Laravel 側 Controllerで変数を渡す config('a…

MySQLのUNIQUE制約のキー長制限に引っかかった

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…

Vue + Laravelでサブディレクトリに展開する際にやったこと。

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>…

SSOをLaravel+Saml2で行ったところプロキシを挟んだらログインできなくなった。

プロキシだとhttpでアクセスするのでその周りだろうなってことで このあたりでエラーが出ている。 vendor/aacotroneo/laravel-saml2/src/Aacotroneo/Saml2/Http/Controllers/Saml2Controller.php の acs(); の所のエラーが array(2) { ["error"]=> array(1) …

Laravelのファイルアップロードのルートパス

config/filesystems.php に入っているので、 file('foo')->store()する際には、 config('filesystems.disks.public.root'); のpublicが付いてるっぽいので、後で取るといは、 config('fil…

LaravelでEthnaのフォームフィルターみたいなやつ

あれな。Inputの時にPOST値を自動的に全角から半角にしてくれたりするやつ。あれ、すげー便利なんだけど、Laravel本体にはないらしい。 waavi/sanitizerをインストール composerにあるので https://packagist.org/packages/waavi/sanitizer $ composer requi…