如何从 Phinx 迁移插入中访问自动生成的 ID?
How to access the auto-generated ID from a Phinx migration insert?
PHP Phinx 是来自 CakePHP 的数据库播种器/迁移库。
这将创建一个假用户,但我如何创建一个行,该行具有对该新用户(即子用户)的 id
的 FOREIGN KEY
(或常规 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);
}
}
这应该 return 相当于 SELECT LAST_INSERT_ID()
:
$this->getAdapter()->getConnection()->lastInsertId();
PHP Phinx 是来自 CakePHP 的数据库播种器/迁移库。
这将创建一个假用户,但我如何创建一个行,该行具有对该新用户(即子用户)的 id
的 FOREIGN KEY
(或常规 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);
}
}
这应该 return 相当于 SELECT LAST_INSERT_ID()
:
$this->getAdapter()->getConnection()->lastInsertId();