Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function morph()
- {
- $this->morphTable('rbac', [
- 'columns' => [
- new Column(
- 'id',
- [
- 'type' => Column::TYPE_INTEGER,
- 'notNull' => true,
- 'autoIncrement' => true,
- 'first' => true
- ]
- ),
- new Column(
- 'code',
- [
- 'type' => Column::TYPE_VARCHAR,
- 'notNull' => true,
- 'size' => 20,
- 'after' => 'id'
- ]
- ),
- new Column(
- 'description',
- [
- 'type' => Column::TYPE_VARCHAR,
- 'notNull' => true,
- 'size' => 255,
- 'after' => 'code'
- ]
- ),
- new Column(
- 'is_role',
- [
- 'type' => Column::TYPE_BOOLEAN,
- 'default' => "false",
- 'notNull' => true,
- 'after' => 'description'
- ]
- ),
- new Column(
- 'children',
- [
- 'type' => Column::TYPE_VARCHAR,
- 'notNull' => false,
- 'size' => 1,
- 'after' => 'is_role'
- ]
- )
- ],
- 'indexes' => [
- new Index('rbac_pkey', ['id'], 'PRIMARY')
- ],
- ]
- );
- $this->morphTable('user', [
- 'columns' => [
- new Column(
- 'id',
- [
- 'type' => Column::TYPE_INTEGER,
- 'notNull' => true,
- 'autoIncrement' => true,
- 'first' => true
- ]
- ),
- new Column(
- 'email',
- [
- 'type' => Column::TYPE_VARCHAR,
- 'notNull' => true,
- 'size' => 100,
- 'after' => 'id'
- ]
- ),
- new Column(
- 'password',
- [
- 'type' => Column::TYPE_VARCHAR,
- 'notNull' => true,
- 'size' => 100,
- 'after' => 'email'
- ]
- ),
- new Column(
- 'created_at',
- [
- 'type' => Column::TYPE_TIMESTAMP,
- 'default' => "now()",
- 'notNull' => true,
- 'size' => 1,
- 'after' => 'password'
- ]
- ),
- new Column(
- 'name',
- [
- 'type' => Column::TYPE_VARCHAR,
- 'notNull' => true,
- 'size' => 255,
- 'after' => 'created_at'
- ]
- ),
- new Column(
- 'role',
- [
- 'type' => Column::TYPE_INTEGER,
- 'notNull' => true,
- 'after' => 'name'
- ]
- ),
- new Column(
- 'force_change',
- [
- 'type' => Column::TYPE_BOOLEAN,
- 'default' => "false",
- 'notNull' => true,
- 'after' => 'role'
- ]
- ),
- new Column(
- 'active',
- [
- 'type' => Column::TYPE_BOOLEAN,
- 'default' => "true",
- 'notNull' => true,
- 'after' => 'force_change'
- ]
- )
- ],
- 'indexes' => [
- new Index('idx_search', ['email', 'active'], null),
- new Index('unq_email', ['email'], 'UNIQUE'),
- new Index('user_pkey', ['id'], 'PRIMARY')
- ],
- 'references' => [
- new Reference(
- 'ifx_role',
- [
- 'referencedTable' => 'rbac',
- 'referencedSchema' => 'printtime',
- 'columns' => ['role'],
- 'referencedColumns' => ['id'],
- 'onUpdate' => 'CASCADE',
- 'onDelete' => 'CASCADE'
- ]
- )
- ],
- ]
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement