Updated_at使用Laravel 4.2 DB Class的时间戳

时间:2016-04-17 12:50:57

标签: php database sqlite laravel-4

使用Laravel 4.2和DB Class(我不允许使用Eloquent)

如何使用Laravel 4.2中的DB Class更新时间戳字段?

创建表格

CREATE TABLE posts
(
    id INTEGER PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    message VARCHAR(50000) NOT NULL,
    author VARCHAR(255) NOT NULL,
    avatar VARCHAR(255),
    created_at DATETIME DEFAULT (DATETIME(CURRENT_TIMESTAMP, 'LOCALTIME')),
    updated_at DATETIME DEFAULT (DATETIME(CURRENT_TIMESTAMP, 'LOCALTIME'))
);

更新行

$post = DB::update('UPDATE posts SET title=?,message=?,author=?,updated_at=? WHERE id=?',
    array(
        Input::get('title'),
        Input::get('message'),
        Input::get('author'),
        CURRENT_TIMESTAMP, <-- Throwing error, what do I put here???
        $id
    )
);

引发此错误

Use of undefined constant CURRENT_TIMESTAMP - assumed 'CURRENT_TIMESTAMP'

1 个答案:

答案 0 :(得分:0)

发现答案。

我需要使用Laravel 4.2附带的Carbon类

在文件顶部,输入:

use Carbon\Carbon;

这是查询

$post = DB::update('UPDATE posts SET title=?,message=?,author=?,updated_at=? WHERE id=?',
    array(
        Input::get('title'),
        Input::get('message'),
        Input::get('author'),
        \Carbon\Carbon::now(),
        $id
    )
);