繁体   English   中英

laravel 在 mysql Workbench 中发布 null,而连接似乎很好

[英]laravel posting null in mysql Workbench while connection seems fine

我是 laravel 的新手,正在观看有关通过登录和注册创建身份验证表单的教程。 我在表单提交时被困在表单的发布上,但在数据库中返回空值我尝试过以前的解决方案但没有运气我做错了什么? 下面是代码预览。

控制器文件

<?php

namespace App\Http\Controllers\Auth;

use App\Models\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;

class RegisterController extends Controller
{
    public function index() 
    {
        return view ('auth.register');
    }

    public function store(Request $request)
    {
        //Validation
        $this->validate($request, [
            'username' => 'required|max:255',
            'email' => 'required|email|max:255',
            'password' => 'required|confirmed',
            'location' => 'required|max:255',
        ]);
        
        //Store User
        User::create([
            'username' => $request->username,
            'email' => $request->email,
            'password' => Hash::make($request->password),
            'location' => $request->location,
        ]);

报名表格

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta name="google-signin-client_id" content="407063748479-dbmn68b26gcbeln4hevvcr97qnrg6hrd.apps.googleusercontent.com">
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <script src="https://kit.fontawesome.com/64d58efce2.js" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="../assets-Authenticate/css/RegistrationStyling.css" />
    <title>Sign in & Sign up Form</title>

  </head>

  <body>

    <div class="container">
      <div class="forms-container">
        <div class="signin-signup">

          <!--Sign In Form-->
          <form action="#" class="sign-in-form" method="POST">
            @csrf
            <h2 class="title">Sign in</h2>
            <div class="input-field">
              <i class="fas fa-user"></i>
              <input type="text" placeholder="User Email" required/>
            </div>
            <div class="input-field">
              <i class="fas fa-lock"></i>
              <input type="password" placeholder="Password" required  pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" title="Must contain at least one number and one uppercase and lowercase letter, and at least 8 or more characters" />
            </div>
            <input type="submit" value="Login" class="btn solid" />
            <div class="reset">
             <a href="PasswordReset.html">Forgot Password ?</a>
            </div>
            <p class="social-text">Or Sign in with social platforms</p>
            <div id="my-signin2"></div>
            <script>
              function onSuccess(googleUser) {
                console.log('Logged in as: ' + googleUser.getBasicProfile().getName());
              }
              function onFailure(error) {
                console.log(error);
              }
              function renderButton() {
                gapi.signin2.render('my-signin2', {
                  'scope': 'profile email',
                  'width': 240,
                  'height': 50,
                  'longtitle': true,
                  'theme': 'dark',
                  'onsuccess': onSuccess,
                  'onfailure': onFailure
                });
              }
            </script>

            <script src="https://apis.google.com/js/platform.js?onload=renderButton" async defer></script>
          </form>

          <!--Sign Up Form-->
          <form action="#" class="sign-up-form" method="POST">
            @csrf
            <h2 class="title">Sign up</h2>
            <div class="input-field">
              <i class="fas fa-user"></i>
              <input type="text" name="username" id="username" placeholder="Username" required />
            </div>
            <div class="input-field">
              <i class="fas fa-envelope"></i>
              <input type="email" name="email" id="email" placeholder="Email" required />
            </div>
            <div class="input-field">
              <i class="fas fa-lock"></i>
              <input type="password" name="password" id="password" placeholder="Password"  onkeyup="checkPassword()" required pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" title="Must contain at least one number and one uppercase and lowercase letter, and at least 8 or more characters" />
            </div>
            <div class="input-field">
              <i class="fas fa-lock"></i>
              <input type="password" id="passwordConfirm" placeholder="Password Confirm" onkeyup="checkPassword()" required pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" title="Must contain at least one number and one uppercase and lowercase letter, and at least 8 or more characters" />
            </div>
            <div class="">
              <p id="message"></p>
            </div>
            <div class="input-field">
              <i class="fas fa-map-marker-alt"></i>
              <input type="text" name="location" id="location" placeholder="Location" required/>
            </div>
            <input type="submit" class="btn" value="Create" onclick="checkPassword()" />
          </form>

        </div>
      </div>

web.php 路由

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Auth\RegisterController;

Route::get('/register',[RegisterController::class, 'index' ])->name('register');
Route::post('/register',[RegisterController::class, 'store' ]);

Route::get('/layouts', function() {
    return view('layouts.index');
});

您的验证应该失败,因为密码确认应该有name="password_confirmation"

<input name="password_confirmation" type="password" id="passwordConfirm" placeholder="Password Confirm" onkeyup="checkPassword()" required pattern="..." title="..." />
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

感谢 Alberto,我意识到问题出在数据库中,其中一个迁移令牌不为空

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM