★Laravel 5.6 で新しいページを作成する手順メモ

1.ルーティングでページ遷移を考える

/laravel/routes/web.php

 

※コントローラーを階層化する場合は、以下のようにする

Route::get('account', 'Mypage\AccountController@show');

 

※認証が必要なページはRouteの後ろに、

->middleware('auth')

をつける。

例)Route::get('mypage/account', 'Mypage\AccountController@index')->middleware('auth');

 

2.新しいテーブルが必要な場合は、マイグレーションを行う

データベース:マイグレーション 5.6 Laravel

SSHでサーバーにログインし、/laravelまで移動し、以下のコマンドを実行

php artisan make:migration テーブル名

 

database/migrationsの下にファイルが作成されるので、

テーブル情報を記載する。

(使用できる型は、上記URLの「使用できるカラムタイプ」を参照)

public function up()
{
Schema::create('UserXXX', function (Blueprint $table) {
$table->increments('id');
$table->string('user_id');
$table->timestamps();
$table->Integer('zzzzz');
});
}

記述が終わると以下のコマンドを実行

php artisan migrate

 

3.モデル作成(Eloquent)(DBを操作可能にするもの)

基本的に1テーブル=1モデル作成する

Eloquent:利用の開始 5.6 Laravel

php artisan make:model テーブル名

laravel/appの下にファイルが作成されるので、最低限、

protected $fillable = [] 

の中に、更新する可能性のあるカラムを記載する。

 

4.コントローラーの作成

php artisan make:controller 階層/●●●●Controller --resource

 

※3で作ったモデルを使う場合は、コントローラーのヘッダーに以下を追加する。

use App\モデル名

※DBを操作するときは以下のページをみる

https://readouble.com/laravel/5.6/ja/eloquent.html

 

※DBでweher句の書き方

$p = Product::where('viewed', '>', '4')

->where('userID', '1')

->orWhere('userID', '2')->get();

 

※フォームのエラー時のリダイレクト書式

 return redirect()
->back()
->withInput()
->withErrors(['file' => 'エラーが発生しました。']);

 

※ファイルのアップロード処理

①ローカルディスクに保存する場合

HTTPリクエスト 5.6 Laravel

$path = $request->file->store('test'); //laravel/storage/app/testの下に保存される

($request->fileのfileは、<input type="file" name="file">の name に合わせる)

 

②S3に保存する場合

ファイルストレージ 5.6 Laravel

$path = $request->file->store('test', 's3');   //S3のバケット内のtestの下に保存される

 

5.ビューの作成

コントローラーで設定したviewの場所と合わせながら、ビューを作成する

 

※フォームで戻った際に入力値を保持したい場合がある。

しかも、初期遷移では別の初期値を使いたいとする。その場合、

<input type="text" value="{{Request::old('name', Auth::user()->name)}}">

のように、oldの第2引数に初期値を書ける。

 

※メッセージを表示させる際、メッセージがあるか無いかを判断する必要がある。

@if (isset( $message ))
  {{$message}}
@endif

のようにする

 

※フォームで静的なテキストを書く場合、

class="form-control-static"を指定すると、上にずれない。

 

 (覚書)

※外部APIからレスポンスを受ける場合、

/app/Http/Middleware/VerifyCsrfToken.php

に、それのレスポンスを受けるURLを追記すること。

 

以上