1 | <?php |
||
5 | class Acl extends AbstractMigration |
||
|
|||
6 | { |
||
7 | /** |
||
8 | * Change Method. |
||
9 | * |
||
10 | * Write your reversible migrations using this method. |
||
11 | * |
||
12 | * More information on writing migrations is available here: |
||
13 | * http://docs.phinx.org/en/latest/migrations.html#the-abstractmigration-class |
||
14 | * |
||
15 | * The following commands can be used in this method and Phinx will |
||
16 | * automatically reverse them when rolling back: |
||
17 | * |
||
18 | * createTable |
||
19 | * renameTable |
||
20 | * addColumn |
||
21 | * renameColumn |
||
22 | * addIndex |
||
23 | * addForeignKey |
||
24 | * |
||
25 | * Remember to call "create()" or "update()" and NOT "save()" when working |
||
26 | * with the Table class. |
||
27 | * |
||
28 | * @throws \InvalidArgumentException |
||
29 | * @throws \RuntimeException |
||
30 | */ |
||
31 | public function change() |
||
32 | { |
||
33 | $roles = $this->table('acl_roles', ['primary_key' => ['id', 'code']]); |
||
34 | $roles |
||
35 | ->addColumn('name', 'string', ['length'=>255]) |
||
36 | ->addColumn('created', 'timestamp', ['default' => 'CURRENT_TIMESTAMP', 'update' => '']) |
||
37 | ->addIndex(['name'], ['unique' => true]) |
||
38 | ->create(); |
||
39 | |||
40 | $privileges = $this->table( |
||
41 | 'acl_privileges', |
||
42 | [ |
||
43 | 'id' => false, |
||
44 | 'primary_key' => ['roleId', 'module', 'privilege'] |
||
45 | ] |
||
46 | ); |
||
47 | $privileges |
||
48 | ->addColumn('roleId', 'integer') |
||
49 | ->addColumn('module', 'string', ['length'=>32]) |
||
50 | ->addColumn('privilege', 'string', ['length'=>32]) |
||
51 | ->addForeignKey('roleId', $roles->getTable(), 'id', [ |
||
52 | 'delete' => 'CASCADE', |
||
53 | 'update' => 'CASCADE' |
||
54 | ]) |
||
55 | ->create(); |
||
56 | |||
57 | $usersRoles = $this->table('acl_users_roles', ['id' => false, 'primary_key' => ['userId', 'roleId']]); |
||
58 | $usersRoles |
||
59 | ->addColumn('userId', 'integer') |
||
60 | ->addColumn('roleId', 'integer') |
||
61 | ->addForeignKey('userId', 'users', 'id', [ |
||
62 | 'delete' => 'CASCADE', |
||
63 | 'update' => 'CASCADE' |
||
64 | ]) |
||
65 | ->addForeignKey('roleId', $roles->getTable(), 'id', [ |
||
66 | 'delete' => 'CASCADE', |
||
67 | 'update' => 'CASCADE' |
||
68 | ]) |
||
69 | ->create(); |
||
70 | } |
||
71 | } |
||
72 |
You can fix this by adding a namespace to your class:
When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.