laravel5中的日期数据类型更新

时间:2017-02-12 14:29:37

标签: php mysql datetime laravel-5

我正在更新从表单发布的数据。 其中一列是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
        ]

);

代码有什么问题。

1 个答案:

答案 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作为列名。)