Help us understand the problem. What is going on with this article?

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

こんにちは!
今回はデータベースにデータを保存できるようにすることを最終地点として説明します
大まかな流れは以下の通りです
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()

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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした