背景・前書き
Laravelもphpも触ったことのない超初心者で、Laravelの仕様(仕組みやライフサイクルなど)を全く理解しておらず、チュートリアルすらやったことがないですが、実際に何かを作ることでなんとなくの雰囲気を把握するために挑戦しました。
基本的に以下のサイトを参考に実装いたしました。こちらの記事をベースに、Laravel9、また自分の環境との差分を備忘録的に書いています。
また、Laravel8.x以降では仕様が変更している部分が多く、時系列的に遭遇したエラーを記載していますので、一度本記事を全て読んでから、私と同じ轍を踏まないようにすることをおすすめします。
Javaなどを先に学んでいる方は理解しやすいと思いますが、MVCモデルとなっているため、同様にModel,ControllerなどやView(画面部分)を作成する流れになります。
ただJavaのプロジェクトとは異なり、ルーティングを行い、URLの飛び先を指定します。
環境
・Mac M1
・Laravel 9
・php 8.2.0
・Composer version 2.5.1
・エディタ : Visual Studio Code
環境構築
詳細は別記事をご参照ください
//データベース作成
create database 'データベース名';
//ユーザー作成
create user 'ユーザー名'@'ホスト名' identified by 'パスワード'; --今回ホスト名はlocalhostにしています。
.envファイルの編集(VScodeを使用しましたがお好きなエディタなどでどうぞ)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=データベース名
DB_USERNAME=ユーザー名
DB_PASSWORD=パスワード
config/app.phpの編集
'timezone' => 'Asia/Tokyo',
'locale' => 'ja',
遭遇したエラー
ログイン機能作成時
Laravel6より下記コマンドが使用できません。
php artisan make:auth
そのため下記サイトを参考に実装しました。
Authが読み込まれないエラー
VScodeの拡張機能を確認してください。
Controller,Modelへのパスが通らない
Target class [ExampleController(任意のコントローラー名)] does not exist.
Laravel8.xかControllerへのルートの記述方法が変更になったようです。
完全修飾パスで書く必要があります。
laravel config cache : false
よく考えたら当たり前ですが、参考にした記事の冒頭で設定したものが悪さをしています。
php artisan config:cache
Laravelの仕組みを勉強する必要があります。
以下のコマンドでなかったことにします。
php artisan config:clear
簡単にいうと、キャッシュの設定をLocal環境で開発する際は行う必要がないということのようです。
"The Mix manifest does not exist"
以下コマンド実行後、アプリ再読み込みします。
npm install
npm run dev
SQLでエラー
SQLSTATE[23000]: Integrity constraint violation: 1048 Column
→ログインしていなかったため、user_idがnullのままINSERT文を実行していました。
localhost/public で登録し、ログインしてからlocalhost/public/timelineでTweetボタンを押下
おまけ
.Gitにpushする際、gitignoreがたくさんあってびっくりしました
その他参考サイト
Laravel9.x 公式マニュアル(日本語版 翻訳中)
間違いや不明点、もっとこうした方がいいなどのアドバイスを賜りたく存じますため、お気軽にコメントしてくださると嬉しいです。