Laravel db接続
解決したいこと
dockerを使いLaravelで自作アプリを作成しています。
ユーザー新規登録画面でフォームに入力した値をmysqlに保存したい
解決方法を教えて下さい。
発生している問題・エラー
新規登録画面で入力した名前などは以下分で表示はできる
public function create(Request $request)
{
// 作成した内容を受け取って変数
$first_name = $request->input('first_name');
$last_name = $request->input('last_name');
以下省略
web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Auth\AuthController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
// ログイン画面
Route::get('/', [AuthController::class, 'showLogin'])->name('showLogin');
// 新規ユーザー作成画面
Route::get('showSignup', [AuthController::class, 'showSignup'])->name('showSignup');
// ログイン処理
Route::post('login', [AuthController::class, 'login'])->name('login');
// 新規作成処理
Route::post('create', [AuthController::class, 'create'])->name('create');
// ログイン後遷移
Route::get('home', function () {
return view('home');
})->name('home');
// 新規作成後遷移
Route::get('top', function () {
return view('top');
})->name('top');
AuthController.php
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
// バリデーション
use App\Http\Requests\LoginFormRequest;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\User;
class AuthController extends Controller
{
public function showSignup()
{
return view('login.signup');
}
public function showLogin()
{
return view('login.login');
}
// signup
public function create(Request $request)
{
// 作成した内容を受け取って変数
$first_name = $request->input('first_name');
$last_name = $request->input('last_name');
$first_name_kana = $request->input('first_name_kana');
$last_name_kana = $request->input('last_name_kana');
$postal_code = $request->input('postal_code');
$address = $request->input('address');
$telephone_number = $request->input('telephone_number');
$gender = $request->input('gender');
$email = $request->input('email');
// 変数を返す
return view('top')->with([
"first_name" => $first_name,
"last_name" => $last_name,
"first_name_kana" => $first_name_kana,
"last_name_kana" => $last_name_kana,
"postal_code" => $postal_code,
"address" => $address,
"telephone_number" => $telephone_number,
"gender" => $gender,
"email" => $email
]);
}
public function store(Request $request)
{
//インスタンス作成
$user = new User();
$user->last_name = $request->last_name;
$user->save();
}
public function login(LoginFormRequest $request)
{
$credentials = $request->only('email', 'password');
// ログイン確認
if (Auth::attempt($credentials)) {
$request->session()->regenerate();
// ホーム画面に遷移
return redirect('home')->with('login_success', 'ログイン成功しました!');
}
return back()->withErrors([
'login_error' => 'メールアドレスかパスワードが間違っています.',
]);
}
}
signup.blade.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>新規作成画面</title>
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}" defer></script>
<!-- styles -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
<!-- <link href="{{ asset('css/signup.css') }}" rel="stylesheet"> -->
</head>
<body>
<div class="container">
<form class="form-signin" method="POST" action="{{ route('create') }}">@csrf
<h1 class="h3 mb-3 font-weight-normal">新規作成画面</h1>
<div class="form-row">
<div class="form-group">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<label for="inputFirst_name">苗字(漢字)</label>
<input type="first_name" class="form-control" id="inputFirst_name" name="first_name" placeholder="山田" required>
</div>
<div class="form-group">
<label for="inputLast_name">名前(漢字)</label>
<input type="last_name" class="form-control" id="inputLast_name" name="last_name" placeholder="太郎" required>
</div>
<div class="form-group">
<label for="inputFirst_name_kana">苗字(カナ)</label>
<input type="first_name_kana" class="form-control" id="inputFirst_name_kana" name="first_name_kana" placeholder="ヤマダ" required>
</div>
<div class="form-group">
<label for="inputLast_name_kana">名前(カナ)</label>
<input type="last_name_kana" class="form-control" id="inputLast_name_kana" name="last_name_kana" placeholder="タロウ" required>
</div>
<div class="form-group">
<label for="inputPostal_code">郵便番号</label>
<input type="postal_code" class="form-control" id="postal_code" name="postal_code" placeholder="1234567" required>
</div>
<div class="form-group">
<label for="inputAddress">住所</label>
<input type="address" class="form-control" id="address" name="address" placeholder="東京都港区南青山5丁目8−8 金子ビル 1F" required>
</div>
<div class="form-group">
<label for="inputTelephone_number">電話番号</label>
<input type="telephone_number" class="form-control" id="telephone_number" name="telephone_number" placeholder="09012345678" required>
</div>
<div class="form-group">
<label>性別</label>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" id="gender" name="gender" value="1" >
<label class="form-check-label" for="inlineRadio01">男性</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" id="gender" name="gender" value="2" >
<label class="form-check-label" for="inlineRadio01">女性</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" id="gender" name="gender" value="3" >
<label class="form-check-label" for="inlineRadio01">どちらでもない</label>
</div>
</div>
<div class="form-group">
<label for="inputEmail">Email</label>
<input type="email" class="form-control" id="inputEmail" name="email" placeholder="Email" required autofocus>
</div>
<div class="form-group">
<label for="inputPassword4">Password</label>
<input type="password" class="form-control" id="inputPassword4" placeholder="Password" required>
</div>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit">新規登録</button>
</form>
</div>
</body>
</html>
自分で試したこと
public function store(Request $request)の記載でダメだったので、なにをしたらmysqlの方にデータが入力されるのか分かりません。
アドバイスお願い致します。
データ名 instant
テーブル名 users
0