如何从 Phinx 迁移插入访问自动生成的 ID?

Jon*_*han 1 php cakephp phinx

PHP Phinx是 CakePHP 的数据库播种器/迁移库。

这将创建一个假用户,但是我将如何创建一个具有FOREIGN KEY(或常规 ID 引用)到该id新用户(即子用户)的行?

<?php

use Phinx\Seed\AbstractSeed;

class UserSeeder extends AbstractSeed
{
    public function run()
    {
        $faker = Faker\Factory::create();
        $data = [];
        for ($i = 0; $i < 100; $i++) {
            $data[] = [
                'username'      => $faker->userName,
                'password'      => sha1($faker->password),
                'password_salt' => sha1('foo'),
                'email'         => $faker->email,
                'first_name'    => $faker->firstName,
                'last_name'     => $faker->lastName,
                'created'       => date('Y-m-d H:i:s'),
            ];
        }

        $this->insert('users', $data);
    }
}
Run Code Online (Sandbox Code Playgroud)

mik*_*n32 6

这应该返回相当于SELECT LAST_INSERT_ID()

$this->getAdapter()->getConnection()->lastInsertId();
Run Code Online (Sandbox Code Playgroud)

参考:https : //github.com/cakephp/phinx/issues/819