2017-03-01 82 views
1

腳本返回一個錯誤,我不認爲我包含在我的代碼中。Laravel註冊ERROR與未知字段

SQLSTATE[HY000]: General error: 1364 Field 'phone' doesn't have a default 
value (SQL: insert into `users` (`name`, `email`, `location`, `password`, 
`steps`, `incubation_days`, `updated_at`, `created_at`) values (ilamini 
Ayebatonye Dagogo, [email protected], Uniben Road, Ugbowo, Benin City, Nigeria, 
$2y$10$aoJRS61Bn/q1eNcUFALjne8erLXD11y1.OmHhurlQJDrex73DPWJW, settings, 8, 
2017-03-01 14:11:54, 2017-03-01 14:11:54)) 

有人可以指點我這個手機領域來自哪裏。 在我的註冊控制器類下方。

<?php 

namespace App\Http\Controllers\Auth; 

use App\User; 
use App\paring_by_location; 
use App\Http\Controllers\Controller; 
use Illuminate\Support\Facades\Validator; 
use Illuminate\Foundation\Auth\RegistersUsers; 

class RegisterController extends Controller 
{ 
    /* 
    |-------------------------------------------------------------------------- 
    | Register Controller 
    |-------------------------------------------------------------------------- 
    | 
    | This controller handles the registration of new users as well as their 
    | validation and creation. By default this controller uses a trait to 
    | provide this functionality without requiring any additional code. 
    | 
    */ 

    use RegistersUsers; 

    /** 
    * Where to redirect users after registration. 
    * 
    * @var string 
    */ 
    protected $redirectTo = '/home'; 

    /** 
    * Create a new controller instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     $this->middleware('guest'); 
    } 

    /** 
    * 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, [ 
      'location' => 'required|min:5', 
      'name'  => 'required|max:255', 
      'password' => 'required|min:6|confirmed', 
      'email'  => 'required|email|max:255', 
     ]); 
    } 

    /** 
    * Create a new user instance after a valid registration. 
    * 
    * @param array $data 
    * @return User 
    */ 
    protected function create(array $data) 
    { 

    $phDay = rand(2,8); 
     $user = User::create([ 
      'name'    => $data['name'], 
      'email'    => $data['email'], 
      'location'   => $data['location'], 
      'password'   => bcrypt($data['password']), 
      'steps'    => 'settings', 
      'incubation_days' => $phDay 
     ]); 

     paring_by_location::create([ 
      'name'  => $data['name'], 
      'email'  => $data['email'], 
      'location' => $data['location'], 
     ]); 

     event(new \App\Events\UserReferred(request()->cookie('ref'), $user)); 

     return $user; 
    } 
} 

以下是我的HomeController,我認爲可能是干擾註冊控制器。

public function AccountSettings(Request $request) 
    { 
     $id = Auth::user()->id; 

     $user = User::findOrFail($id); 

     $this->validate($request, [ 
      'account_name'  => 'required|string|min:5', 
      'account_number' => 'required|digits:10', 
      'bank_name'   => 'required|string|min:3', 
      'phone'    => 'required|digits:11' 
     ]); 

     $input = $request->all(); 
     $user->update(array('steps' => 'notification')); 

     $update = $user->fill($input)->save(); 





     return redirect()->route('home'); 

    } 

也是我的用戶模型TAHT有保護地

protected $fillable = [ 
     'name', 'email', 'password', 'location','steps','incubation_days','phone','bank_name','account_name','account_number', 
    ]; 

所以我想知道爲什麼它返回一個錯誤,當我不包括手機寄存器控制器中

+0

由於錯誤說'電話'沒有默認值。或者你更新你的表格結構來接受空的「phone」值,或者你在註冊用戶時通過這個值 –

+0

我該如何做到這一點與PHPMYADMIN – dagogodboss

回答

0

您應該爲phone字段設置nullable()default()值。它應該是這樣的遷移users表:

$table->string('phone')->nullable(); 

或者使所需的phone領域:

protected function validator(array $data) 
{ 
    return Validator::make($data, [ 
     'location' => 'required|min:5', 
     'name'  => 'required|max:255', 
     'password' => 'required|min:6|confirmed', 
     'email'  => 'required|email|max:255', 
     'phone' => 'required' 
    ]); 
} 

並將其添加到create()方法:

create([ 
    'name'  => $data['name'], 
    'email'  => $data['email'], 
    'location' => $data['location'], 
    'phone'  => $data['phone'] 
]); 
+0

謝謝阿列克謝但我不需要電話我在那裏有什麼是我想要的。 – dagogodboss

+0

@dagogodboss比將它設置爲一個'nullable()',正如我在我的答案中所示。 –

+0

好吧,只需2分鐘 – dagogodboss