Symfony2中的动态对象

时间:2016-02-15 03:54:08

标签: php symfony doctrine-orm

我创建了一个生成和管理数据库的系统。这个想法很简单:用户将能够定义表格,结构,当然还可以添加/编辑/删除所有数据。这个动态对象应该在网站级别完全配置,而不是在代码中。让我们假设我拥有来自用户的所有必要信息(它是通过表单发送的),现在我想生成新的Doctrine对象并在数据库中创建表。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:3)

以下是您的需求:

$sm = $conn->getSchemaManager();
$schema = $sm->createSchema();
$newSchema = clone $schema;
$table = $newSchema->createTable("my_table");
$table->addColumn("id", "integer", array("unsigned" => true));
$table->addColumn("username", "string", array("length" => 32));
$table->setPrimaryKey(array("id"));
$table->addUniqueIndex(array("username"));
$sql = $schema->getMigrateToSql($newSchema, $conn->getDatabasePlatform());

之后只需执行新的SQL

$conn->exec( $sql );

P.S。 connDBAL connection的实例。查看here了解更多信息。