この章からデータベースを勉強するぞ!
データベース…言葉の響きだけでカッコイイ気がする。
俺んちのデータベース見に来ないか?
記憶すること!
忘れてはいけないMVCで使用するフォルダとファイル
■ルート
routes\web.php
■コントローラー
app\Http\Controllers\○○○.php
■ビュー
resources\views\○○○.blade.php
■モデル
app\Models\○○○.php
■マイグレーション
database\migrations\〇〇〇〇〇〇〇_〇〇_create_products_table.php
【課題】静的なページを表示しよう
artisanコマンドで作成したコントローラのスペルを待ちがった以外は、問題なし。
13章 データベースとの連携方法を学ぼう
教材に従いプロジェクトフォルダの直下にある.envファイルを更新して、この章は終了。
14章 マイグレーションについて学ぼう
- マイグレーションファイルという設計書みたいなものを作成し、マイグレーションを実行してテーブルやカラムの変更をする
- マイグレーションは「php artisan migrate コマンド」
- データベースのコンソールでなく、マイグレーションによってテーブル等を変更することで変更履歴を容易にできるようになる
★テーブルを作成する場合
php artisan make:migration マイグレーションファイル名 --create=作成するテーブル名
~~~~~
★カラムを変更する場合
php artisan make:migration マイグレーションファイル名 --table=変更するテーブル名
ミグレーションによるテーブル作成の流れ
- コマンドでマイグレーションファイルを作成する ※playerの部分が任意
コマンド「php artisan make:migration create_player_table --create=player」 - マイグレーションファイルを更新する
格納先:database\migrations\〇〇〇.php
必要なカラムをマイグレーションファイルに追加していく
今回は文字列でplayer_name,整数でageを追加する
★マイグレーションファイルにカラム追加する場合 ※黄色網掛け箇所のように更新する
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('player', function (Blueprint $table) {
$table->id();
$table->string('player_name');
$table->integer('age');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('player');
}
};
- マイグレーションをコマンドで実行する
コマンド「php artisan migrate 」
ム、エラーが…
Access denied for user 'root'@'localhost'
が怪しかったので「.env」ファイルとphpMyAdminの「ユーザーアカウント」を調べました。
結果、「.env」ファイルのパスワードを変更して事なきを得ました。
感想
データベースとの接続でエラーが発生した。
課題13の設定は間違いなかったが、データベースのアカウントと.envファイルの設定に齟齬が生じていた。
恐らく、課題の中でDBの設定があったにも関わらず設定が漏れてしまったのかもしれない。
DBアクセスのエラーに対応できたのは経験として良かった。