MySQL数据库注册后没有更新



首先,我是Laravel框架的新手,所以请原谅我。我正在创建一个电子商务网站,并创建了一个注册页面。问题是每当我填写注册表格并按下注册按钮时,页面会刷新,但我填写的数据不会在MySQL数据库中更新。

注册文件。registration.blade.php'

@extends('layouts.master')
@section('content')
@section('title', 'Register')
<section class="login-page"> 
<div class="login-form-box">
<div class="login-title"> Register</div>
<div class="login-form">
<form action="{{route('register')}}" method="post">
@csrf
<div class="field">
<label for="name">name</label>
<input type="text" id="name" name="name" placeholder="john" >
</div>
<div class="field">
<label for="email">email</label>
<input type="email" id="email" name="name" placeholder="john@gmail.com" >
</div>
<div class="field">
<label for="password">password</label>
<input type="password" id="password" name="password" placeholder="******" >
</div>
<div class="field">
<label for="passowrd_confirmation">confirm password</label>
<input type="password" id="password" name="passowrd_confirmation" placeholder="******" >
</div>
<div class="field">
<button type= "submit" class="btn btn-primary btn-block">Register</button>
</div>

</form>
</div>
</div>
</section>
@endsection

'此外,laravel

中的路由文件web.php

<?php
use AppHttpControllersAuthController;
use AppHttpControllersPagesController;
use IlluminateSupportFacadesRoute;
/*
|--------------------------------------------------------------------------
| 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('/', [PagesController::class, 'home'])->name('home');
Route::get('/cart', [PagesController::class, 'cart'])->name('cart');
//Auth
Route::get('/login', [AuthController::class, 'showLogin'])->name('login');
Route::get('/register', [AuthController::class, 'showRegister'])->name('register');
Route::post('/register', [AuthController::class, 'postRegister'])->name('register');

这里是注册函数的文件AuthController.php'

<?php
namespace AppHttpControllers;
use AppModelsUser;
use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
use IlluminateSupportFacadesHash;
class AuthController extends Controller
{
//show login page
public function showLogin()
{
return view('pages.login');
}
//show register page
public function showRegister()
{
return view('pages.register');
}
//register user
public function postRegister(Request $request)
{
//validation
$request->validate([
'name' => 'required|min:3|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:8|confirmed'
]);

//registration
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => Hash::make($request->password),
]);

//login user
Auth::login($user);
return back()->with('success','succesfully Logged in');

}


}

'这是我的数据库在phpmyadmin填写表格后:用户数据库我试图在我的AuthController.php中使用showRegister函数,以检查是否可以在网页中看到填充的数据。然而,我什么也看不见。

显示错误和旧值

首先,我建议你在使用验证时更新你的视图以显示错误,并显示旧的值:

<div class="field">
<label for="name">name</label>
<input type="text" id="name" name="name" value="{{ old('name') }}" placeholder="john" >
@error('name')
<div>{{$message}}</div>
@enderror
</div>

如果验证没有成功,则不会进行任何更改。尝试显示验证是否通过:

public function postRegister(Request $request)
{
//validation
$request->validate([
'name' => 'required|min:3|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:8|confirmed'
]);
dd("Validation passed!);
}

这将帮助你发现错误。

查看官方的Laravel验证文档

尝试检查registration.blade.php文件中的验证错误消息

@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif

最新更新