繁体   English   中英

创建具有ID的记录

[英]Create record with id

我需要从其他数据库导入数据,并将其传输到新数据库。 但是关系需要成员的ID信息。 我也要带它们 因此,我必须填写ID列,该列增加为AUTOINCREMENT。

我的迁移控制器

 public function migrate(BackupUser $buser, User $user)
            {
                $backup_user = $buser->get();

                foreach ($backup_user as $bulk) {
                    $user->create([
                        'id'         => $bulk->uye_id,
                        'name'       => $bulk->uye_nick,
                        'email'      => $bulk->uye_mail,
                        'password'   => $bulk->uye_sifre,
                        'created_at' => $bulk->uye_tarih
                    ]);
                }
            }

这样做时,AUTOINCREMENT通常会增加,而我无法获取以前成员的ID信息。

做这个的最好方式是什么?

我认为您正在尝试将数据库从joomla或wordpress迁移到laravel。

如果我需要这样做。 我的方法是先存储所有不带id基本表,然后将插入后生成的具有存储id的存储在相关表中。 所以步骤是

  S1:  store new `user` and get `id`
  S2:  relate with other table like `role` with `user_id`
  Loop again till last row

默认情况下, Userid字段不能像您正在执行的那样通过批量分配填充。 如果要分配它,则必须在用户类的可填充字段数组中添加'id'

app / User.php

...
class User extends Authenticatable
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'id', 'name', 'email', 'password',
    ];
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM