2017-02-12 26 views
-2

我正在更新從表單發佈的數據。 其中一列是mysql中的datatime數據類型。在laravel5中更新日期數據類型

除日期時間列外,所有數據都在更新。

我的代碼如下

DB::table('CANDIDATE') 
->where('CANDIDATEID',$ID) 
->update(
     [ 
     'fname'=>$fname 
     ,'mname'=>$mname 
     ,'lname'=>$lname 
     ,'genderid'=>$GENDERID 
     ,'dob'=>$dob 
     ,'address'=>$address 
     ,'city'=>$city 
     ,'pinno'=>$pinno 
     ,'statesid'=>$STATESID 
     ,'countryid'=>$COUNTRYID 
     ,'contactno'=>$contactno 
     ,'industryprtid'=>$INDUSTRYPRTID 
     ,'cur_prof_titl'=>$cur_prof_titl 
     ,'skills'=>$skills 
     ,'certificate'=>$certificate 
     ,'emp_typeid'=>$EMPTYPEID 
     ,'experienceid'=>$EXPERIENCEID 
     ,'educationid'=>$EDUCATIONID 
     ,'edu_major'=>$edu_major 
     ,'other_detail'=>$other_detail 
     ,'mainobj'=>$mainobj 
     ,'relocate'=>$relocate 
     ,'sal_rngid'=>$sal_rngid 
     ] 

); 

什麼是錯的代碼。

+0

哪一列是DateTime列?那麼您在該列中使用的參數是什麼? – RiggsFolly

+0

@RiggsFolly - DOB(出生日期)是Datetime列。我也刪除了fname,但仍然是DOB列不起作用 – Kash

+1

您使用了哪種數據類型作爲'dob'並且您傳遞了什麼值? –

回答

0

當您使用流暢構建器而不是使用Eloquent時,Laravel不會設置時間戳。所以你需要一個模型。

流利的建設者將不設置時間戳

DB::table('CANDIDATE') 
    ->where('CANDIDATEID', $ID) 
    ->update(
    // ... 

雄辯模式將:

<?php namespace App\Namespace; 

use Illuminate\Database\Eloquent\Model; 

class Candidate extends Model 
{ 
    // Model foo here 
} 

然後用:

App\Namespace\Candidate::where('CANDIDATEID, $ID) 
    ->update(
    // ... 

既然你有可用的默認laravel時間戳列在你的桌子上。 (created_at,updated_at)。


無關,但值得一提的是:

如果/當可能的話,請檢查您的命名規則,這將是更容易跟蹤表和列名Laravel命名約定(如使用candidates作爲表名和candidate_id列名。)

相關問題