2016-12-01 100 views
0

我试图建立与laravel 5.3我得到插入错误,而这样做,下面的一些字段进行简单的注册表格插入到数据库是截图:如何验证表单输入和laravel

enter image description here

以下是我的刀片文件:

@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      

以下是我的控制器:

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(); 
} 

以下是我的用户模型:

<?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' 

    ]; 

} 

请帮助我。

谢谢。

+0

看起来您在架构中有“国家/地区”,并且它不为空()和/或没有默认值(),并且您不会从表单中提供该值。根据需要进行修复(使其可以为空,将其设为默认值,将国家字段添加到表单中)。 – markdwhite

+0

@markdwhite是的,我也这么认为。 –

+0

在您的迁移文件中检查您的国家属性'$ table-> string('country') - > nullable();'或者您可以直接在phpmyadmin上直接检查'allow_null' –

回答

1

看起来你在你的方案有“国家”,它不能为空()和/或没有默认的(),和你不提供从您的形式价值。根据需要进行修复(使其可以为空,将其设为默认值,将国家字段添加到表单中)。

我看到所有

1

在你用户模型,$可填写数组包含国家列。但是您正尝试创建新记录,但未插入列的任何值。

因此,所有你而用户表创建一个记录来定义默认值国家列。

在您的用户迁移文件中,设置国家/地区列为可空。

$table->string('country')->nullable(); 
+0

但我试图通过窗体中的选择框插入国家的价值。 –

+0

选择框为国家的值在您的表格中具有名称属性国家,只需在以下行中插入国家,$ request-> only('name','email','password','username','address','city' ,'is_admin','contact'); – shuvrow

1

在memberregister()方法中没有提到“国家”检查以下行

$data = $request->only('name', 'email', 'password', 'username', 'address', 'city','country', 'is_admin', 'contact'); 

没有一个国家的请求。你还需要添加国家。