code: public function generateTableIndices($table)
      {
          $tableName = $table->name;
          $meta = $this->findTableKeys($table);
          $niceName = lcfirst(Inflector::id2camel($tableName, '_'));
  
          if ($this->getPrimaryKeyLocation($table) === 'index') {
              foreach ($meta['primaryKeys'] as $name => $parts) {
                  $keys = $parts['keys'];
                  $unique = !empty($parts['unique']);
                  $i[] = "\$this->addPrimaryKey('{$niceName}Pk', '{$tableName}', '" . implode(',', $keys) . "');";
              }
          }
  
          foreach ($meta['indices'] as $name => $parts) {
              $keys = $parts['keys'];
              $name = $this->fixIndexName($name, $table, $keys);
              $unique = !empty($parts['unique']);
              $i[] = "\$this->createIndex('{$name}', '{$tableName}', '" . implode(',', $keys) . "', " . ($unique ? 'true' : 'false') . ");";
          }
  
          foreach ($meta['foreignKeys'] as $fk) {
              $keys = $fk['keys'];
              $unique = !empty($fk['unique']);
              $name = $this->fixIndexName($fk['name'], $table, array_values($keys));
              $i[] = "\$this->addForeignKey('{$fk['name']}', '{$tableName}', '" . implode(',', array_keys($fk['keys'])) . "', '{$fk['table']}', '" . implode(',', array_values($fk['keys'])) . "', '{$fk['onDelete']}', '{$fk['onUpdate']}');";
          }
  
          return implode("\n\t\t", $i);
      }
docs: [[@doctodo method_description:generateTableIndices]].
  
  @param [[@doctodo param_type:table]] $table [[@doctodo param_description:table]]
  
  @return [[@doctodo return_type:generateTableIndices]] [[@doctodo return_description:generateTableIndices]]