kazpgmの日記

『プログラム自動作成@自動生成』作成の日記

PHP・Laravelの勉強中 ログイン機能・日本語化のつづき

14:05
①昨日のLaravel8のログイン機能『③/resources/lang/ja 以下の4ファイルを/lang/ja 以下にコピーする。これで、エラーメッセージは日本語になる。』のつづき
NETで書いてあるLaravel8のログイン機能の日本語化にいろいろ違いがあり、日本語にならない箇所があったりしたが、いろいろなNET情報を読んで、その通りやったら動いた。これらの画面とパスワード再設定メールがもともと動くのだから、ほんと、よくできている。
出来た画面。
■ユーザー登録画面

■ユーザー登録エラー画面

■パスワード再設定URL送信画面

■パスワード再設定メール

■パスワード再設定画面

■パスワード再設定後画面

■ログイン画面

■ログイン後または、ユーザー登録後画面

21:52
①しかし、Laravel8のログイン機能のController達のプログラム内容が、さっぱりわからない。ということで、調査中

PHP・Laravelの勉強中 ログイン機能・日本語化

22:30
自分が見ている参考資料がちょっと古いので、ログイン機能が書いてあるようになっていない。

①Laravel8のログイン機能は以下で作るらしい。
> composer require laravel/ui
その後
> php artisan ui vue --auth
その後
>php artisan migrate
その後
>npm run dev

②そしてエラーメッセージの日本語化は
 ・config/app.php
  'timezone' => 'Asia/Tokyo',
  'locale' => 'ja',
'  faker_locale' => 'ja_JP',
  に書き換える

 ・日本語化のインストール
 インストーラのダウンロード
  >php -r "copy('https://readouble.com/laravel/8.x/ja/install-ja-lang-files.php', 'install-ja-lang.php');"
 インストーラを実行
  >php -f install-ja-lang.php
 インストーラを削除
  >php -r "unlink('install-ja-lang.php');"
 実行すると、/resources/lang/ja というディレクトリができる。
 中身はauth.php、passwords.php、pagination.php、validation.phpの4ファイル。

③/resources/lang/ja 以下の4ファイルを/lang/ja 以下にコピーする。これで、エラーメッセージは日本語になる。

PHP・Laravelの勉強中

18:08
今日も、PHP・Laravelのvr.8を調べている。
PHP・Laravelのvr.8で自動増分IDを定義する「$table->id();」は
「$table->bigIncrements(‘id’)」 ( 符号なしBIGINTを使用した自動増分ID(主キー))
のことで、idは 符号なしBIGINTになるとのこと。
なので、これを外部キーとして使う時は
「$table->integer('user_id')->unsigned();」でなく
「$table->unsignedBigInteger('user_id');」にしないといけない。
自分が見ている参考資料がちょっと古いので、「$table->integer('user_id')->unsigned();」になっていたので、エラーが出た。
こういう、なんだか理由がわからないことを解決する時間はちょっと好き。
エラー:

  Illuminate\Database\QueryException 
  SQLSTATE[HY000]: General error: 1005 Can't create table `laravel-test`.`folders` (errno: 150 "Foreign key constraint is incorrectly formed") (SQL: alter table `folders` add constraint `folders_user_id_foreign` foreign key (`user_id`) references `users` (`id`))

PHP・LaravelのMigrationが面白い。テーブル自体をPHP・Laravelで管理し、登録したテーブル構造自体を何かに使っているのだろう。

PHP・Laravelの勉強

8:07

PHP・Laravelって、認証機能を持っているんだ。SpringBootでも、SpringSecurityもっているから、なるほどって感じだけど、驚いたのは、 php artisan migrateで初期環境のテーブルがDBにできて、そこに、ユーザー登録テーブルができ、さらに、パスワード再設定のためのテーブルもできること。
・さらに、パスワード再設定の仕組み(ユーザーに再設定メールを送って画面で再設定してもらう)が標準化されている。こと。
・認証は、かなめだから間違いが無いように、という発想なんだろう。なかなかだな。
・自分が作っているPGM自動作成ツールも、ユーザー登録、ログインは重要だからツール固定にしている。でもパスワード再設定はやっていない。そこは使う人が作ったらいいと思ってた。でも、自分のツールもパスワード再設定を固定で入れたほうがいいかも。って思った。
・さらに驚いたのは、DBに登録するテーブルの構造をPHPから新規で作ったり、修正履歴を持ったりしていること。ここまでやるってなかなか考え付かない。認証機能をつけるのだからテーブル作成も当然という発想だろう。面白い。

16:56
PHP・Laravelのvr.8では、こんな感じの、違いがあるみたいだ。自分が見ている参考資料がちょっと古いので、サンプル勉強がなかなか進まない。
 こんなNGが出た。

NG1:URL表示時に「Target class [XxxController] does not exist.」エラーになる。
理由:Routeの書き方がvr.8で違うから。
   Laravelのvr.8からは第二パラメータが
   'XxxController@index' → [App\Http\Controllers\XxxController::class, 'index'] に
   なっている。
正解:Route::get('/folders/{id}/tasks', [App\Http\Controllers\XxxController::class, 'index'] )->name('tasks.index');

NG2:実行時にcssが読み込めなくて、GET http://127.0.0.1:8000/css/Xxx.css net::ERR_ABORTED 404 (Not Found)になる
理由:環境作成時にpublic\resources\css、public\resources\jsになっている。が、そこにcssやjsを置いてはいけない。
   public\resourcesの下は、公開はされてない。コンパイル前のデータを置くところ。
   publicの下は、名前(public)の通り、中身が公開されていて、ブラウザが直でアクセスできる。
正解:publicの下にcssフォルダ、jsフォルダを作ってそこに、そこにcssやjsを置く。
余談:よくよく参考資料を見たらpublic\cssの下にXxx.cssを置く様にと書いてあった。ので、これは同じだった。自分が気を利かせて、すでにフォルダができていたから「public\resources\css」の下に置いたのがいけなかった。ハハハ

PHP・Laravelの勉強 XAMPPでPHP・Laravelの環境が作れた

22:51
①かってしったるXAMPPでPHP・Laravelの環境が作れた。簡単だった。うれしい。
VSCodeで開発って書いてあって、拡張ツールを入れるって。なんと、VSCodeVisual Studio Code)はVB.netで使ったVS(Visual Studio)とは、別物だった。
 これが分かるのにちょっと時間がかかった。2時間ぐらい。なんとなんと紛らわしい。
③といううことで、今日は開発環境ができた。はず。

「kaz_javaSpringBootプログラム自動作成◎自動生成」のバグ修正(一覧画面の検索ボタンで例外発生)のVectorOKが来た。

・「kaz_javaSpringBootプログラム自動作成◎自動生成」のバグ修正(一覧画面の検索ボタンで例外発生)のVectorOKが来た。
Ver2.4(20220610000)になった。
www.vector.co.jp
・Zenn本(SpringBoot、Thymeleaf プログラム自動作成(マクロ使用版))
zenn.dev

「Flutter_JavaSpringプログラム自動作成◎自動生成」VectorからOKが来た

「Flutter_JavaSpringプログラム自動作成◎自動生成」VectorからOKが来た。よかった。Zenn本も公開した。
Vector
www.vector.co.jp

・Zenn本(Flutter_JavaSpringプログラム自動作成)
zenn.dev