【问题标题】:How to disable 'create_at' and 'update_at' in Laravel's seed file?如何在 Laravel 种子文件中禁用“created_at”和“updated_at”?
【发布时间】:2014-01-16 09:04:30
【问题描述】:

我不想使用“update_at”和“create_at”行,但 Laravel 的种子文件正在尝试更新它。如何禁用它?

这是我正在使用的代码:

use Illuminate\Database\Migrations\Migration;

class SeedUsersTable extends Seeder {

// $timestamps = false;  <=== will return error
// public static $timestamps = false;  <=== will return error

    public function run()
    {
        DB::table('users')->delete();
        User::create(array(
                'id' => 1,
                'name' => 'Админ',
                'password' => Hash::make('admin'),
                'login' => 'admin'
        ));
    }
}

【问题讨论】:

  • 关于这个老问题,您是指updated_atcreated_at 吗?你在这里指定了 update_atcreate_at - 这在 Laravel 中是否发生了变化,或者这只是一个错字?谢谢。

标签: php mysql laravel-4


【解决方案1】:

根据 Laravel 文档,

... 默认情况下,Eloquent 会自动维护数据库表中的 created_at 和 updated_at 列。只需将这些时间戳列添加到您的表中,Eloquent 就会处理剩下的事情。

如果您不希望 Eloquent 维护这些列,请在您的 User 模型中添加以下内容:

class User extends Eloquent {

    public $timestamps = false;

}

【讨论】:

  • 如果有人使用 Eloquent,这是一个更好的答案。
【解决方案2】:
use Illuminate\Database\Migrations\Migration;

class SeedUsersTable extends Seeder {

    public function run()
    {
        DB::table('users')->delete();

        $user = new User(array(
                'id' => 1,
                'name' => 'Админ',
                'password' => Hash::make('admin'),
                'login' => 'admin'
        ));

        $user->timestamps = false;
        $user->save();
    }
}

【讨论】:

    猜你喜欢
    • 2018-09-16
    • 1970-01-01
    • 2016-04-05
    • 2019-01-22
    • 2020-04-08
    • 2014-08-15
    • 2014-08-17
    • 1970-01-01
    • 2015-11-26
    相关资源
    最近更新 更多