0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PHPで初めてのWebアプリケーション開発 DB(MySQL)設定 備忘録6

Posted at

#前提
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;

database.png

###Laravelの.envファイルの修正
変更箇所のみ記載
「DB_DATABASE=''」は作成したデータベース名。

.env
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ファイルの修正
変更箇所のみ記載

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

マイグレーションファイル
マイグレーションファイルにテーブルの中身を追加

nana_users
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;

データベースの中にテーブルが作成されていることを確認
データベース中身.png
テーブルの中にカラムが作成されていることを確認
table2.png

###シーダーファイルの作成
ダミーレコードを作成するためにシーディング機能を使ってシーダーファイルを作成
シーダーファイルはターミナルから作成
カレントディレクトリをプロジェクトフォルダに移動してから、以下のコマンドを実行

php srtisan make:seeder NanaUsersTableSeeder

プロジェクトフォルダでdatabase/seedsにNanaUsersTableSeeder.phpファイルが作成されているのを確認

シードを作成する処理を追記

NanaUsersTableSeeder
<?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を以下のように修正

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を作成して表示

test.blade.index
@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にアクセス

テーブル表示画面.png

無事表示された。

#おわりに
次回は掲示板機能の実装を行っていきたいと思う。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?