我正在更新从表单发布的数据。 其中一列是mysql中的datatime数据类型。
除日期时间列外,所有数据都在更新。
我的代码如下
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 :(得分:0)
当您使用流利的构建器而不是使用Eloquent时,Laravel不会设置时间戳。所以你需要一个模型。
Fluent构建器不会设置时间戳
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
作为列名。)