Advertisement
Guest User

Untitled

a guest
Oct 3rd, 2017
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.62 KB | None | 0 0
  1. public function morph()
  2.     {
  3.         $this->morphTable('rbac', [
  4.                 'columns' => [
  5.                     new Column(
  6.                         'id',
  7.                         [
  8.                             'type' => Column::TYPE_INTEGER,
  9.                             'notNull' => true,
  10.                             'autoIncrement' => true,
  11.                             'first' => true
  12.                         ]
  13.                     ),
  14.                     new Column(
  15.                         'code',
  16.                         [
  17.                             'type' => Column::TYPE_VARCHAR,
  18.                             'notNull' => true,
  19.                             'size' => 20,
  20.                             'after' => 'id'
  21.                         ]
  22.                     ),
  23.                     new Column(
  24.                         'description',
  25.                         [
  26.                             'type' => Column::TYPE_VARCHAR,
  27.                             'notNull' => true,
  28.                             'size' => 255,
  29.                             'after' => 'code'
  30.                         ]
  31.                     ),
  32.                     new Column(
  33.                         'is_role',
  34.                         [
  35.                             'type' => Column::TYPE_BOOLEAN,
  36.                             'default' => "false",
  37.                             'notNull' => true,
  38.                             'after' => 'description'
  39.                         ]
  40.                     ),
  41.                     new Column(
  42.                         'children',
  43.                         [
  44.                             'type' => Column::TYPE_VARCHAR,
  45.                             'notNull' => false,
  46.                             'size' => 1,
  47.                             'after' => 'is_role'
  48.                         ]
  49.                     )
  50.                 ],
  51.                 'indexes' => [
  52.                     new Index('rbac_pkey', ['id'], 'PRIMARY')
  53.                 ],
  54.             ]
  55.         );
  56.  
  57.         $this->morphTable('user', [
  58.                 'columns' => [
  59.                     new Column(
  60.                         'id',
  61.                         [
  62.                             'type' => Column::TYPE_INTEGER,
  63.                             'notNull' => true,
  64.                             'autoIncrement' => true,
  65.                             'first' => true
  66.                         ]
  67.                     ),
  68.                     new Column(
  69.                         'email',
  70.                         [
  71.                             'type' => Column::TYPE_VARCHAR,
  72.                             'notNull' => true,
  73.                             'size' => 100,
  74.                             'after' => 'id'
  75.                         ]
  76.                     ),
  77.                     new Column(
  78.                         'password',
  79.                         [
  80.                             'type' => Column::TYPE_VARCHAR,
  81.                             'notNull' => true,
  82.                             'size' => 100,
  83.                             'after' => 'email'
  84.                         ]
  85.                     ),
  86.                     new Column(
  87.                         'created_at',
  88.                         [
  89.                             'type' => Column::TYPE_TIMESTAMP,
  90.                             'default' => "now()",
  91.                             'notNull' => true,
  92.                             'size' => 1,
  93.                             'after' => 'password'
  94.                         ]
  95.                     ),
  96.                     new Column(
  97.                         'name',
  98.                         [
  99.                             'type' => Column::TYPE_VARCHAR,
  100.                             'notNull' => true,
  101.                             'size' => 255,
  102.                             'after' => 'created_at'
  103.                         ]
  104.                     ),
  105.                     new Column(
  106.                         'role',
  107.                         [
  108.                             'type' => Column::TYPE_INTEGER,
  109.                             'notNull' => true,
  110.                             'after' => 'name'
  111.                         ]
  112.                     ),
  113.                     new Column(
  114.                         'force_change',
  115.                         [
  116.                             'type' => Column::TYPE_BOOLEAN,
  117.                             'default' => "false",
  118.                             'notNull' => true,
  119.                             'after' => 'role'
  120.                         ]
  121.                     ),
  122.                     new Column(
  123.                         'active',
  124.                         [
  125.                             'type' => Column::TYPE_BOOLEAN,
  126.                             'default' => "true",
  127.                             'notNull' => true,
  128.                             'after' => 'force_change'
  129.                         ]
  130.                     )
  131.                 ],
  132.                 'indexes' => [
  133.                     new Index('idx_search', ['email', 'active'], null),
  134.                     new Index('unq_email', ['email'], 'UNIQUE'),
  135.                     new Index('user_pkey', ['id'], 'PRIMARY')
  136.                 ],
  137.                 'references' => [
  138.                     new Reference(
  139.                         'ifx_role',
  140.                         [
  141.                             'referencedTable' => 'rbac',
  142.                             'referencedSchema' => 'printtime',
  143.                             'columns' => ['role'],
  144.                             'referencedColumns' => ['id'],
  145.                             'onUpdate' => 'CASCADE',
  146.                             'onDelete' => 'CASCADE'
  147.                         ]
  148.                     )
  149.                 ],
  150.             ]
  151.         );
  152.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement