我可以将“ id”列添加为可填充内容吗?

时间:2019-07-05 05:55:29

标签: laravel laravel-5 eloquent laravel-5.6

我想要用户表中的广告“ id”。用户表纯粹来自laravel。在User.php模型中有这些语法

protected $fillable = ['name','email',password']

我可以在$ fillable语法中添加'id'列吗?

我可以在不将列名添加到$ fillable数组的情况下填充'id'列吗?

1 个答案:

答案 0 :(得分:0)

刚刚看到了这个问题。也许我做错了,但是我看到你以不同的形式重复了一条评论:

  

我的目的是使唯一的数字作为id值

这是默认情况下“自动增量”主索引为您执行的操作。它是唯一的,因为它被定义为主变量,并且会自动递增,因此您将获得分配给表中一行的单个数值。

建议1

不确定您为什么要通过重新实现已经为您实现的东西来使生活变得艰难。

使用带有--create参数的artisan命令定义表迁移时,Laravel会在其中包含以下行来生成表迁移:

$table->increments('id');

这意味着它将在您的表中创建一个名称为'id'的列,该列对您来说是PRIMARY和AUTOINCREMENTED。

建议2

但是,如果您真的想自己做。当然可以。

fillable数组仅用于“质量分配”。因此,如果您想在表中插入其他值的同时插入id,例如:

$request['id'] = 123; //my unique number
User::create($request->all());

$ request显然是Request Facade的一个实例。然后是,您需要将ID放入可填充数组中。

建议3

但是,如果您只想单独更改现有模型的ID,即使不将其放在fillable数组中也可以这样做,例如:

$user = User::where('email', $email)->first();
$user->id = 123; // my unique number
$user->save();

我希望对您有帮助