2017-04-16 136 views
3

我有問題,可以找到解決方案我的自我。SQLSTATE [23000]:完整性約束違規:19 NOT NULL約束失敗:在laravel

我想要做的模型在我的形式,但我不斷收到此錯誤

SQLSTATE [23000]:完整性約束違規:19 NOT NULL約束失敗:drivers.user_id(SQL:插入「驅動程序「(」vehicle_color「,」plate_number「,」join_date「,」updated_at「,」created_at「)values(Black,T701344C,04/16/2017,2017-04-16 18:32:04,2017-04-16 18時32分04秒))

我的控制器

public function store(Request $request) 
{ 
    $this->validate($request, [ 
     'first_name' => 'required|max:50', 
     'last_name' => 'required|max:50', 
     'phone_number' => 'required|numeric|unique:users', 
     'email' => 'required|email|max:255|unique:users', 
     'password' => 'required|min:6|confirmed', 
     'vehicle_id' => 'required', 
     'vehicle_color' => 'required', 
     'plate_number' => 'required', 
    ]); 

    $user = new User(); 
    $user->first_name = $request->input('first_name'); 
    $user->last_name = $request->input('last_name'); 
    $user->phone_number = $request->input('phone_number'); 
    $user->email = $request->input('email'); 
    $user->password = $request->input('password'); 
    $user->sex = $request->input('sex'); 
    $user->dob = $request->input('dob'); 
    if($request->hasFile('avatar')){ 
     $user->avatar = $request->file('avatar')->store('uploads/clients/avatar', 'public'); 
    } 

    $user->dob = true; 
    $user->verified = true; 

    $user->save(); 

    $user->driver()->create([ 
     'vehicle_id' => $request->input('vehicle_id'), 
     'vehicle_color' => $request->input('vehicle_color'), 
     'plate_number' => $request->input('plate_number'), 
     'join_date' => Carbon::now()->format('m/d/Y'), 
    ]); 

    $role = Role::whereName('driver')->first(); 
    $user->assignRole($role); 

    alert()->success('Driver successfully added.')->autoclose(3000)->persistent('Close'); 
    return redirect()->route('backend.drivers.index'); 
} 
在用戶模型的用戶關係

public function driver() 
{ 
    return $this->belongsTo(Driver::class); 
} 
在驅動程序模型關係

public function user() 
{ 
    return $this->belongsTo(User::class, 'user_id'); 
} 

驅動程序表

Schema::create('drivers', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->integer('all_time_job')->nullable(); 
     $table->string('vehicle_color')->nullable(); 
     $table->string('plate_number')->nullable(); 
     $table->date('join_date')->nullable(); 

     $table->integer('user_id')->unsigned()->index(); 
     $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); 

     $table->integer('vehicle_id')->unsigned()->index(); 
     $table->foreign('vehicle_id')->references('id')->on('vehicles'); 
     $table->timestamps(); 
    }); 

用戶表

Schema::create('users', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->string('first_name'); 
     $table->string('last_name'); 
     $table->string('phone_number')->unique(); 
     $table->string('avatar')->nullable(); 
     $table->string('dob')->nullable(); 
     $table->string('email')->unique(); 
     $table->string('password'); 
     $table->boolean('verified')->default(false); 
     $table->string('token')->nullable(); 
     $table->rememberToken(); 
     $table->timestamps(); 
    }); 

有人可以幫我解決這個問題

它將用戶數據保存在用戶表中,但它不會將驅動程序日期保存在驅動程序表中。

我的用戶laravel 5.4

+0

向我們展示您的架構此表 – RiggsFolly

+0

我敢打賭沒有'auto_increment'設置在列'user_id'(作爲其主鍵) 。 – Dygnus

+0

查看我的模式 –

回答

相關問題