データをデータベースに登録する。

ルーティングファイルを定義する

データをデータベースに登録するため、まずフォームが必要です。そして登録処理が必要です。この2つについてルーティングファイルに定義を記載します。

$ cd /aho
$ cd ./routes/
$ vi web.php
<?php

use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/

//-- 登録処理
Route::post('/livers/add', 'App\Http\Controllers\LiverController@add');
//-- 登録・編集フォーム
Route::get('/livers/add', function() {
  return view('livers.add');
});
                                                     

次に投稿フォームを作ります。

$ cd /aho
$ cd ./resources/views/livers
$ touch ./add.blade.php
<html>
  <head>
    <title>Test</title>
  </head>
  <body>
    <form action="/livers/add" method="POST">
      @csrf <!-- 必ず入れておく。そうしないとPOSTしたとき、Error419Statusが発生する -->
      ID: <input type="text" name="ID" /><br/>
      RoomNumber: <input type="text" name="RoomNumber" /><br/>
      Name: <input type="text" name="Name" /><br/>
      Uneatable: <input type="text" name="Uneatable" /><br/>
      RiceType: <input type="text" name="RiceType" /><br/>
      RiceQuantity: <input type="text" name="RiceQuantity" /><br/>
      Comment: <textarea name="Comment"></textarea>
      <input type="submit" value="登録" />
    </form>
  </body>
</html>

次にコントローラーを作ります。

$ cd /aho
$ cd ./app/Http/Controllers/
$ vi LiverController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Log;
use Illuminate\Http\Request;
use App\Models\Livers;

class LiverController extends Controller
{
  public function add(Request $request)
  {
    ##↓データベースにデータを登録
    ##関数の引数にRequest $requestを指定してあげると。
    ##$request変数にフォームから送信されたデータが入っている。
    \DB::table('T_LIVERS')->insert([
      'ID' => $request->ID,
      'RoomNumber' => "{$request->RoomNumber}",
      'Name' => "{$request->Name}",
      'Uneatable' => "{$request->Uneatable}",
      'RiceType' => "{$request->RiceType}",
      'RiceQuantity' => "{$request->RiceQuantity}",
      'Comment' => "{$request->Comment}"
    ]);
    #数値はそのまま$request->XXX, 文字列は"{$request->XXX}"と指定
    return redirect('/livers'); //-- トップページに飛ばす
  }
}

"LiverController.php" 33L, 848B