学说 动态地创建一个实体



有没有办法在数据库中动态创建和修改实体和表(从 php 脚本)?

例如,我想从数组生成一个实体:

fields{
    id: integer,
    name: string,
    ... and so on
}

然后比在 bd 中生成一个表

我只知道一个简单的解决方案:创建 yml 或 xml 文件并从我的脚本运行控制台命令,或使用 DBAL

我只知道一个简单的解决方案:创建 yml 或 xml 文件并从我的脚本运行控制台命令,或使用 DBAL

您还可以从命令行生成实体,例如:

$ php app/console generate:doctrine:entity --no-interaction 
    --entity=AcmeBlogBundle:Post 
    --fields="id:integer title:string(100) body:text" 
    --format=xml

这使用仅在devtest环境中定义的SensioGeneratorBundle。

所以,它有点笨拙,但你需要在正确的环境中调用这个命令:

$ php app/console generate:doctrine:entity […] --env=dev

可以使用进程组件来启动此命令。

所以你最终可能会得到这样的东西:

use SymfonyComponentProcessProcess;
use SymfonyComponentProcessExceptionProcessFailedException;
$command = 'php app/console generate:doctrine:entity --no-interaction '.
    '--entity=AcmeBlogBundle:Post '.
    '--fields="id:integer title:string(100) body:text" '.
    '--format=xml';
$process = new Process($command);
$process->run();
// executes after the command finishes
if (!$process->isSuccessful()) {
    throw new ProcessFailedException($process);
}
echo $process->getOutput();

相关内容

  • 没有找到相关文章

最新更新