備忘録

webの備忘録のために

Laravel 整理その1

Laravelのディレクトリ構成

とりあえず色々とフォルダはあるけれど、 以下のものが基本的な部分で覚えておけばおーけ。

1. /.env (環境設定)
2. /config/app.php (アプリケーション 基本設定)
3. /routes/web.php (ルート定義)
4. /resources/views/ 以下 (ビュー・HTML などの表示要素を設定)
5. /app/Http/Controllers/ 以下 (コントロール/モデルを設定)

DBの設定としては.envフォルダにDBの設定等ができるようになっているので、
そこで設定。(今回のcloud9では最初からDB環境も用意されてる)

で、一旦今回は簡単な本の管理アプリを作ってみる。

取り敢えずデータベースの定義をするために
データベースマイグレーションを実行。コマンドは以下
php artisan make:migration ファイル名 --create=テーブル名

で、生成された/cms/database/migrations
のファイルに必要なカラム等を設定してく。

「up」メソッドは新しいDB、インデックス、カラムを追加するもの
「down」メソッドはupメソッドで作成したものを消す。

Laravel5.4以上には
「/app/Providers/ AppServiceProvider.php
のファイルには以下の設定をする。

use Illuminate\Support\Facades\Schema;
Schema::defaultStringLength(191);

こちらは
Laravel5.4 以上から標準charasetがutf8mb4に変更され、
標準のvarchar(255)設定が実行されるとCloud9のMySQL バージョンではエラーになる。
上記のコードで、 varchar(191)に変更することで解消している

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    use Illuminate\Support\Facades\Schema;

    public function boot()
    {
        Schema::defaultStringLength(191);
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

upメソッドに必要なカラム等を追加したら
php artisan migrate
を実行してDBを定義する。