44
44

More than 3 years have passed since last update.

【Laravel】データベースを作成しよう

Last updated at Posted at 2019-11-27

こんにちは!
今回はデータベースにデータを保存できるようにすることを最終地点として説明します
大まかな流れは以下の通りです
1. 環境変数を設定する
2. データベースを作成する
3. データベースに接続する
4. データベースにデータを保存する

では、始めます!!

環境変数の編集

環境変数を編集していきます
環境変数は使用するOS上でのルールを決めている変数というイメージです。
ここで編集するファイルは二つです

.envファイルの編集

.envファイルを編集します
下記のように編集していきましょう
データベースの名前はご自身のアプリケーション名に対応させてください
DB_USERNAMErootDB_PASSWORDsecretで設定しましょう

.env(一部) 編集前
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

.env(一部) 編集後
DB_DATABASE=laravel-project
DB_USERNAME=root
DB_PASSWORD=secret

database.phpの編集

.envに合わしてdatabase.phpも編集しましょう

config/database.php
'mysql' => [
//                     :
//                     :
     'database' => env('DB_DATABASE', 'laravel-project'),
     'username' => env('DB_USERNAME', 'root'),
     'password' => env('DB_PASSWORD', 'secret'),
//                     :
//                     :
],

データベース作成

MySQLにログインして、データベースを作成しましょう!
MySQLにrootユーザーでログインします。

$ mysql -u root

MySQLにログイン完了後、laravel-projectというデータベースを作成します

mysql> CREATE DATABASE `laravel-project`;

下記のコマンドでデータベースが作成されているか確認しましょう

mysql> show databases;

データベース接続

上で作成したデータベースに接続しましょう

ターミナル
$ php artisan tinker
Psy Shell v0.9.9 (PHP 7.3.9-1+ubuntu18.04.1+deb.sury.org+1 — cli) by Justin Hileman
>>> DB::connection();
=> Illuminate\Database\MySqlConnection {#2891}

テーブル作成

マイグレーションして、テーブルを作成します。
マイグレーションする前に少し準備をします。

文字列の最大文字数を191文字にする

マイグレーション時にエラーになるので設定しましょう

app/Providers/AppServiceProvider.php
    public function boot()
    {
        \Schema::defaultStringLength(191);
    }

では、下記のコマンドでマイグレーションを行い、テーブルを作成しましょう

ターミナル
$ php artisan migrate

テーブルの作成が完了しました。

データ作成

一度に複数のデータを作成しましょう!!
まず、下記のコマンドを実行するとUsersTableSeeder.phpが生成されます。

ターミナル
$ php artisan make:seeder UsersTableSeeder

生成されたUsersTableSeeder.phpのRun関数内に下記のように追記しましょう

database/seeds/UsersTableSeeder.php
    public function run(){
        DB::table('users')->insert([
            'name' => 'test1',
            'email' => 'test1@test.com',
            'password' => bcrypt('test1') 
        ]);
    }

次に、DatabaseSeeder.phpのRun関数内をコメントアウトしてください

database/seeds/DatabaseSeeder.php
    public function run()
    {
        $this->call(UsersTableSeeder::class);
    }

上記で編集したファイルを元にデータを作成しましょう

$ php artisan db:seed --class=UsersTableSeeder

コンソールから作成されたデータを確認しましょう

$ php artisan tinker

>>> use App\User
>>> User::all()

上記のコマンドでテーブル内のデータが表示されます
表示されれば完了です!!

疑問、気になるところがございましたら、質問、コメントよろしくお願いします!!!

44
44
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
44
44