Laravel を利用した CRUD の SPA 作成 2 ~ データベース設定編

laravel でデータベースを設定してきます。お前、全然JavaScript のジャの字もで手ないじゃないか、もうテックアカデミーに行くわと言われそうですが、もう少しお待ちを。

テーブルの作成

DB は MySQL を使用する予定ですが、パート1 で作成した「Homestead」には
MySQL がインストールされています。
デフォルトでは「.env」以下の設定をすることで接続可能です

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

それでは Laravel さんの機能を使用してテーブルを作成します。

ホストOS で Lalavel がインストールされているフォルダに移動します。

cd [Homesteadがインストールされているパス]
vagrant ssh

ゲストOSでモデルとテーブルのひな型マイグレーションファイルを作成します。

php artisan make:model Item -m

作成されたマイグレーションファイルを以下に編集します。

    public function up()
    {
        Schema::create('items', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('item_name');
            $table->timestamps();
        });
    }

その後以下のコマンドを実行します。

php artisan migrate

これで「items」というテーブルが作成されました。

ダミーデータの挿入

ダミーデータを使用するツール「 Faker 」を日本語に対応させます。

//ja_JP に変更
faker_locale' => 'ja_JP',

Laravel の機能である(ガンダム)シードを利用して空のテーブルにダミーデータを挿入します。

php artisan make:factory ItemFactory
php artisan make:seeder ItemsTableSeeder
<?php
/** @var \Illuminate\Database\Eloquent\Factory $factory */
use App\Model;
use Faker\Generator as Faker;
$factory->define(App\Item::class, function (Faker $faker) {
    return [
        'item_name' => $faker->realText(10),
    ];
});
<?php
use Illuminate\Database\Seeder;
class ItemsTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        App\Item::truncate();
        factory(App\Item::class, 50)->create();
    }
}

事前のもろもろの設定が完了したら、コマンドを実行します。

php artisan db:seed --class=ItemsTableSeeder

なんか変な日本語が入っていますが、ダミーなので気にしないことにしましょう。

最後に Model 周りを設定して DBの設定は完了です。

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Item extends Model {
    protected $fillable = ['item_name'];
}

JavaScript, PHP

Posted by admin