duanhuang1699 2016-12-01 03:43
浏览 94
已采纳

如何验证表单输入并在laravel中插入数据库

I'm trying to build a simple registration form with some fields in laravel 5.3 I'm getting insert error while doing so, following is the screenshot:

enter image description here

Following is my blade file:

@extends('admin.authlayouts')

@section('content')
<!-- Registration content -->
<div class="col-xs-12 login-content reg-content">
    <span class="text-center">Register to get your account</span>
    <div class="col-xs-12 login-form">
        <form role="form" method="POST" action="{{ url('/memberregister') }}">
          {{ csrf_field() }}

            <label>Enter your personal details below.</label>
            <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
                <label class="sr-only" for="full-name">Full name</label>
                <input type="text" name="name" id="name" value="{{ old('name') }}" placeholder="Full name" class="input-field full-name form-control" required autofocus>
              @if ($errors->has('name'))
                <span class="help-block">
                    <strong>{{ $errors->first('name') }}</strong>
                </span>
            @endif
            </div>
            <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
                <label class="sr-only" for="email">Email</label>
                <input id="name" type="email" name="email" value="{{ old('email') }}" placeholder="Email" class="input-field email form-control" required>
              @if ($errors->has('email'))
                <span class="help-block">
                    <strong>{{ $errors->first('email') }}</strong>
                </span>
            @endif
            </div>
            <div class="form-group{{ $errors->has('address') ? ' has-error' : '' }}">
                <label class="sr-only" for="address">Address</label>
                <input type="text" name="address" id="address" value="{{ old('address') }}" placeholder="Address" class="input-field address form-control" required>
              @if ($errors->has('address'))
                <span class="help-block">
                    <strong>{{ $errors->first('address') }}</strong>
                </span>
            @endif
            </div>
            <div class="form-group{{ $errors->has('city') ? ' has-error' : '' }}">
                <label class="sr-only" for="city">City/Town</label>
                <input type="text" name="city" id="city" value="{{ old('city') }}" placeholder="City/Town" class="input-field city form-control" required>
              @if ($errors->has('city'))
                <span class="help-block">
                    <strong>{{ $errors->first('city') }}</strong>
                </span>
            @endif
            </div>
            <div class="form-group{{ $errors->has('country') ? ' has-error' : '' }}">
                <label class="sr-only" for="country">Country</label>
                <select name="country" id="country" class="input-field country form-control">
                    <option value="">Select a country</option>
                  <option value="India">India</option>
                </select>
              @if ($errors->has('country'))
                <span class="help-block">
                    <strong>{{ $errors->first('country') }}</strong>
                </span>
            @endif
            </div>
            <label>Enter your new account details below.</label>
            <div class="form-group{{ $errors->has('country') ? ' has-error' : '' }}">
                <label class="sr-only" for="username">Username</label>
                <input id="username" type="text" name="username" value="{{ old('city') }}" placeholder="Username" class="input-field username form-control">
              @if ($errors->has('username'))
                <span class="help-block">
                    <strong>{{ $errors->first('username') }}</strong>
                </span>
            @endif
            </div>
            <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
                <label class="sr-only" for="password">Password</label>
                <input type="password" name="password" placeholder="Password" class="input-field password form-control">
              @if ($errors->has('password'))
                <span class="help-block">
                    <strong>{{ $errors->first('password') }}</strong>
                </span>
            @endif
            </div>
            <div class="form-group">
                <label class="sr-only" for="retype-password">Confirm Password</label>
                <input type="password" name="password_confirmation" id="password-confirm" placeholder="Retype Password" class="input-field re-password form-control">
            </div>
            <div class="form-group">
                <label><input type="checkbox" name="" id="remember-check"> I agree to the  Terms & Conditions & Privacy Policy</label>
            </div>
            <input type="submit" value="Sign up" class="btn btn-success pull-right">
        </form>
    </div>
</div>
@endsection                    

Following is my Controller:

public function memberregister(Request $request)
{
  $this->validate($request, User::$register_validation_rules);
  $data = $request->only('name', 'email', 'password', 'username', 'address', 'city', 'is_admin', 'contact');
  $data['password'] = bcrypt($data['password']);
  $data['is_admin'] = 0;
  $user = User::Create($data);
  if($user){
    \Auth::login($user);
    return redirect('member.dashbaord');
  }

  return back()->withInput();
}

Following is my user model:

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password', 'contact', 'address', 'city', 'country', 'username', 'bankname', 'bankaddress', 'ifsccode', 'accountnumber', 'is_admin'
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    public static $login_validation_rules = [
      'username' => 'required|exists:user',
      'password' => 'required'

    ];

    public static $register_validation_rules = [
            'name' => 'required|max:255',
            'email' => 'required|email|max:255|unique:users',
            'username' => 'required|max:255|unique:users',
            'password' => 'required|min:6|confirmed',
//             'contact_number' => 'required',
            'address' => 'required|max:255',
            'city' => 'required|max:255',
//             'state' => 'required|max:255',
//             'country' => 'required|max:255'

    ];

}

Please help me out.

Thanks.

  • 写回答

3条回答 默认 最新

  • douhuijun3776 2016-12-01 04:17
    关注

    Looks like you have "country" in your schema and it is not nullable() and/or has no default(), and you don't provide that value from your form. Fix as appropriate (make it nullable, give it a default, add a country field to the form).

    I see no reference to "country" in your memberregister() method at all

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常