2016-12-01 136 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'); 

沒有一個國家的請求。你還需要添加國家。