简体   繁体   English

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

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

i am new to laravel and was watching a tutorial on creating an authentication form with login and register.我是 laravel 的新手,正在观看有关通过登录和注册创建身份验证表单的教程。 I'm stuck on the posting of the form as the form submits but returns null values in the database I've tried previous solutions with no luck Im i doing something wrong?我在表单提交时被困在表单的发布上,但在数据库中返回空值我尝试过以前的解决方案但没有运气我做错了什么? below is acode preview.下面是代码预览。

Controller File控制器文件

<?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,
        ]);

registration form报名表格

<!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 route 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');
});

Your validations should be failing, since the password confirmation should have name="password_confirmation"您的验证应该失败,因为密码确认应该有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