2016-06-21 138 views
0

我laravel項目無法驗證我的登記表中所有的FiledsLaravel Authintication無法驗證所有領域

網址:http://themovingpixel.com/myfinancialgoals/register

我的資源/視圖/ auth /中register.blade.php代碼是在這裏

@extends('layouts.register') 
@section('content') 
<div class="stage_top_bg">Financial Advisors Register</div> 
<div class="container"> 
    <div class="financial_mid_box"> 
    <form name="myform" action="{{ url('/register') }}" method="POST"> 
    {{ csrf_field() }} 
    <div class="stage_box"> 
     <div class="stage_one_box stage_active steps">Stage 1</div> 
     <div class="stage_two_box steps">Stage 2</div> 
     <div class="stage_three_box steps">Stage 3</div> 
     <div class="stage_four_box steps">Stage 4</div> 
    </div> 

    <div class="financial_form_box formone"> 
     <div class="col-lg-6 col-md-6"> 
     <div class="financial_fild_main_box"> <span class="name_text">Name</span> 
      <div class="name_fild"> 
      <input name="name" class="name_main_fild" type="text" placeholder="Name"> 
      </div> 
      @if ($errors->has('name')) 
      <span class="help-block"><strong>{{ $errors->first('name') }}</strong></span> 
      @endif 
     </div> 
     </div> 
     <div class="col-lg-6 col-md-6"> 
     <div class="financial_fild_main_box"> <span class="name_text">Practice</span> 
      <div class="name_fild"> 
      <input name="practice" class="name_main_fild" type="text" placeholder="Practice"> 
      </div> 
      @if ($errors->has('practice')) 
      <span class="help-block"><strong>{{ $errors->first('practice') }}</strong></span> 
      @endif 
     </div> 
     </div> 
     <div class="col-lg-6 col-md-6"> 
     <div class="financial_fild_main_box"> <span class="name_text">Phone</span> 
      <div class="name_fild"> 
      <input name="phone_number" class="name_main_fild" type="tel" placeholder="Phone"> 
      </div> 
      @if ($errors->has('phone_number')) 
      <span class="help-block"><strong>{{ $errors->first('phone_number') }}</strong></span> 
      @endif 
     </div> 
     </div> 
     <div class="col-lg-6 col-md-6"> 
     <div class="financial_fild_main_box"> <span class="name_text">Email</span> 
      <div class="name_fild"> 
      <input name="email" class="name_main_fild" type="text" placeholder="Email"> 
      </div> 
      @if ($errors->has('email')) 
      <span class="help-block"><strong>{{ $errors->first('email') }}</strong></span> 
      @endif 
     </div> 
     </div> 
     <div class="col-lg-6 col-md-6"> 
     <div class="financial_fild_main_box"> <span class="name_text">Password</span> 
      <div class="name_fild"> 
      <input name="password" class="name_main_fild" type="password" placeholder="Password"> 
      </div> 
     </div> 
     </div> 
     <div class="clearfix"></div> 
     <div class="procced_button">Proceed</div> 
    </div> 


    <div class="financial_form_box stepsone"> 
     <div class="col-lg-6 col-md-6"> 
     <div class="financial_fild_main_box"> <span class="name_text">Package</span> 
      <div class="name_fild"> 
      <select name="packages" class="name_main_fild"> 
       <option value="0">Select</option> 
       <option value="45">$45/month</option> 
       <option value="60">$60/month</option> 
      </select> 
      </div> 
     </div> 
     </div> 
     <div class="clearfix"></div> 
     <div class="procced_button btns">Proceed</div> 
    </div> 





    <div class="financial_form_box steptwo"> 
     <div class="financial_fild_main_box"> <span class="name_text">Payment</span> 
     <div class="payament_box"> <!-- <a href="#"> 
      <div class="payament_icon"><img src="{{ asset('assets/frontend/images/payaple_icon.jpg')}}" alt="icon"></div> 
      </a> <a href="#"> 
      <div class="payament_icon"><img src="{{ asset('assets/frontend/images/ebay_icon.jpg')}}" alt="icon"></div> 
      </a> <a href="#"> 
      <div class="payament_icon"><img src="{{ asset('assets/frontend/images/pay_icon_three.jpg')}}" alt="icon"></div> 
      </a> <a href="#"> 
      <div class="payament_icon"><img src="{{ asset('assets/frontend/images/pay_icon_four.jpg')}}" alt="icon"></div> 
      </a> <a href="#"> 
      <div class="payament_icon"><img src="{{ asset('assets/frontend/images/pay_icon_six.jpg')}}" alt="icon"></div> 
      </a> <a href="#"> 
      <div class="payament_icon"><img src="{{ asset('assets/frontend/images/pay_icon_seven.jpg')}}" alt="icon"></div> 
      </a> <a href="#"> 
      <div class="payament_icon"><img src="{{ asset('assets/frontend/images/pay_icon_eight.jpg')}}" alt="icon"></div> 
      </a> --> 
      <div class="name_fild"> 
      <select name="payment_type" class="name_main_fild"> 
       <option value="0">Select</option> 
       <option value="paypal">Paypal</option> 
       <option value="ebay">Ebay</option> 
       <option value="cirrus">Cirrus</option> 
       <option value="visa">Visa</option> 
       <option value="discover">Discover</option> 
       <option value="google">Google</option> 
       <option value="eway">Eway</option> 
      </select> 
      </div> 
      </div> 
     </div> 
     <div class="clearfix"></div> 
     <div class="procced_button"><button type="submit" class="process_btn">Proceed</button></div> 
    </div> 
    </form> 
    </div> 
</div> 
@endsection 

而且我的應用程序/ HTTP /控制器/驗證代碼是在這裏

<?php 
namespace App\Http\Controllers\Auth; 
use App\User; 
use App\Userinfo; 
use Validator; 
use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\ThrottlesLogins; 
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; 
class AuthController extends Controller 
{ 
    /* 
    |-------------------------------------------------------------------------- 
    | Registration & Login Controller 
    |-------------------------------------------------------------------------- 
    | 
    | This controller handles the registration of new users, as well as the 
    | authentication of existing users. By default, this controller uses 
    | a simple trait to add these behaviors. Why don't you explore it? 
    | 
    */ 
    use AuthenticatesAndRegistersUsers, ThrottlesLogins; 
    /** 
    * Where to redirect users after login/registration. 
    * 
    * @var string 
    */ 
    protected $redirectTo = '/profile'; 
    /** 
    * Create a new authentication controller instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     $this->middleware($this->guestMiddleware(), ['except' => 'logout']); 
    } 
    /** 
    * Get a validator for an incoming registration request. 
    * 
    * @param array $data 
    * @return \Illuminate\Contracts\Validation\Validator 
    */ 
    protected function validator(array $data) 
    { 
     return Validator::make($data, [ 
      'name' => 'required|max:255', 
      'email' => 'required|email|max:255|unique:users', 
      'practice' => 'required', 
      'password' => 'required|min:6|confirmed', 
     ]); 
    } 
    /** 
    * Create a new user instance after a valid registration. 
    * 
    * @param array $data 
    * @return User 
    */ 
    protected function create(array $data) 
    { 

     //Validation 
     $this->validate($data, [ 
     'name' => 'required|max:255', 
     'email' => 'required|email|max:255|unique:users', 
     'practice' => 'required|max:255', 
     'phone_number' => 'required|number', 
     'password' => 'required|min:6|confirmed', 
     ]); 

     $insertedUserInfo = User::create([ 
      'name' => $data['name'], 
      'email' => $data['email'], 
      'password' => bcrypt($data['password']), 
     ]); 

     // echo '<pre>'.print_r($userinfo,1).'</pre>'; 
     // exit; 
     // $userinfo = new Userinfo; 
     // $userinfo->user_id = $insertedUserInfo->id; 
     // $userinfo->phone_number = $data['phone_number']; 
     // $userinfo->address = $data['address']; 
     // return $userinfo->save(); 
     Userinfo::create([ 
      'user_id' => $insertedUserInfo->id, 
      'phone_number' => $data['phone_number'], 
      'practice' => $data['practice'], 
      'dob' => $data['dob'], 
      'postcode' => $data['postcode'], 
      'gender' => $data['gender'] 
     ]); 
     return $insertedUserInfo; 

    } 
} 

請幫我驗證從這個數據到3tables用戶,用戶信息表的註冊。

+0

您是否使用認證資源路由?例如:'Auth \ AuthController @ postRegister'。在這種情況下,您的應用程序將會提取兩次。它將首先通過'validator()'函數驗證,然後在你的'create()'函數中驗證。 –

+0

我是laravel的初學者,所以我不知道什麼是認證的資源路由我解決了jQuery的驗證問題,但沒有將數據插入數據庫 –

+0

你的模型中是否有'$ fillable'數組?如果不是這種情況,請檢查[this](https://laravel.com/docs/5.2/eloquent#mass-assignment)。當你使用'create()'方法時,你需要這樣做。 –

回答

0

首先,對於這種類型的步驟佈局,您也應該有一些客戶端驗證。 爲此,您可以使用jquery驗證。

Take a look at this

您的驗證不僅將內陣列

$this->validate($data, [ 
    'name' => 'required|max:255', 
    'email' => 'required|email|max:255|unique:users', 
    'practice' => 'required|max:255', 
    'phone_number' => 'required|number', 
    'password' => 'required|min:6|confirmed', 
    ]); 

所以,你必須字段名傳遞給您的驗證陣列,以驗證現場驗證領域。

+0

所以我可以使用jquery驗證,而不是laravel驗證我的表單佈局? –

+0

您可以使用jquery驗證進行客戶端檢查。對於服務器端你可以使用laravel驗證。您可以顯示所有錯誤,如@if($ errors-> any())

    @foreach($ errors-> any()as $ error)
  • {{$如果數據是在即將投入或錯誤}}
  • @endforeach
@ endif' –

+0

謝謝您的幫助,我 解決與jQuery,但數據驗證問題而無法插入到數據庫 –

0

驗證方法期望第一個參數作爲請求實例,但不是您所做的數組($ data)。 https://laravel.com/api/5.1/Illuminate/Foundation/Validation/ValidatesRequests.html#method_validate

+0

我有另外一個home.blade .php頁面我用 公共功能存儲(請求$請求) { $ this-> validate($ request,[ 'name'=>'required | max:200', 'email'=>'required | email | max:255 | unique:users', 'dob'=>'required | before:today', ' 'phone_number'=>'required', 'postcode'=>'required | numeric', 'gender'=>'required | not_in:0' ]); } 我用這個代碼和工作,所以我需要使用請求$請求權? –

+0

我將我的代碼更改爲受保護的函數create(request $ request){ $ this-> validate($ request,[ 'name'=>'required | max:200', 'email'=>'required | email | max:255 | unique:users', 'phone_number'=>'required', ]); } 但沒有運氣只有名稱字段和電子郵件字段驗證不是電話號碼 –