#前提
PHPを使ったWebアプリケーションの開発知識が必要になったので、開発過程の備忘録、知識のインプット・アウトプットを目的としている。
###環境
macOS Catalina 10.15.3
Laravel 7.10.3
PHP 7.3.11
#備忘録6 目次
####MySQL接続
- MySQLのインストール
- MySQLの認証プラグインの変更
- データベースの作成
- Laravelの.envファイルの修正
- laravelのconfig/databese.phpファイルの修正
####テーブルの作成
- マイグレーションファイルの作成
- シーダーファイルの作成
- マイグレートの実行
- テーブルを画面に表示する
##MySQLに接続
手元にある「Laravel 入門」ではSQLiteの接続方法を紹介しているが、MySQLを利用したかったので、MySQLの接続方法を確認。
###MySQLのインストール
MySQLもHomebrewでインストール。
参考にした記事→「【Laravel】MySQLの接続方法を徹底解説【コピペでOK】」
###MySQLの認証プラグインの変更
認証プラグインの変更も参考にした記事通りに実行したら、特にエラーも無く接続できた。
参考にした記事→「【Laravel】MySQLの接続方法を徹底解説【コピペでOK】」
###データベースの作成
作成しているアプリのデータベースを作成する。
ターミナルでMySQLにログイン後、以下のコマンドを入力。
create database NanaitaApp(データベース名);
データベースができているか確認
show databases;
###Laravelの.envファイルの修正
変更箇所のみ記載
「DB_DATABASE=''」は作成したデータベース名。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=NanaitaApp
DB_USERNAME=root
DB_PASSWORD=secret
###laravelのconfig/databese.phpファイルの修正
変更箇所のみ記載
'mysql' => [
'database' => env('DB_DATABASE', 'NanaitaApp'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'secret'),
],
##テーブルの作成
テーブルの作成は、勉強も兼ねてLaravel側からマイグレーションとシーディングを使って行う。
###マイグレーションファイルの作成
マイグレーションファイルはターミナルから作成
カレントディレクトリをプロジェクトフォルダに移動してから、以下のコマンドを実行。
php artisan make:migration create_nana_users_table
マイグレーションファイル
マイグレーションファイルにテーブルの中身を追加
public function up()
{
Schema::create('nana_users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('mail');
$table->string('password');
$table->timestamps();
});
}
ファイルに追記したら以下のコマンドでマイグレートを実行
php artisan migrate
MySQLにログインしてテーブルとカラムが作成されているか確認
use NanaitaApp;
show tables;
desc nana_users;
データベースの中にテーブルが作成されていることを確認
テーブルの中にカラムが作成されていることを確認
###シーダーファイルの作成
ダミーレコードを作成するためにシーディング機能を使ってシーダーファイルを作成
シーダーファイルはターミナルから作成
カレントディレクトリをプロジェクトフォルダに移動してから、以下のコマンドを実行
php srtisan make:seeder NanaUsersTableSeeder
プロジェクトフォルダでdatabase/seedsにNanaUsersTableSeeder.phpファイルが作成されているのを確認
シードを作成する処理を追記
<?php
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class NanaUsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$param = [
'name' => 'taro',
'mail' => 'taro@yamada.jp',
'password' => '12',
];
DB::table('nana_users')->insert($param);
$param = [
'name' => 'hanako',
'mail' => 'hanako@flower.jp',
'password' => '34',
];
DB::table('nana_users')->insert($param);
$param = [
'name' => 'sachiko',
'mail' => 'sachiko@happy.jp',
'password' => '56',
];
DB::table('nana_users')->insert($param);
}
}
作成したファイルが実行されるように、デフォルトで用意されているDatabaseSeeder.phpに登録する。
database/seedsにあるDatabaseSeeder.phpを以下のように修正
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
public function run()
{
$this->call(NanaUsersTableSeeder::class);
}
}
最後にターミナルからシーディング処理を実行する
php artisan db:seed
###テーブルを画面に表示する
今回はテスト用にtest.blade.phpを作成して表示
@extends('layouts.loginform')
@section('title','test')
@section('content')
<div class='list-card'>
<table>
<tr><th>Name</th><th>Mail</th><th>Password</th></tr>
@foreach ($items as $item)
<tr>
<td>{{$item->name}}</td>
<td>{{$item->mail}}</td>
<td>{{$item->password}}</td>
</tr>
@endforeach
</table>
</div>
@endsection
サーバーを起動してlocalhost:8000/testにアクセス
無事表示された。
#おわりに
次回は掲示板機能の実装を行っていきたいと思う。