データをデータベースに登録する。
ルーティングファイルを定義する
データをデータベースに登録するため、まずフォームが必要です。そして登録処理が必要です。この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
