供应商中的条令积垢生成



我正在尝试使用Symfony2 app/console命令工具通过doctrine2命令生成CRUD。(app/console doctrine:generate:crud

问题是:我想在供应商中生成它(是的,我们在启动时直接在供应商中开发一些捆绑包)。当我执行命令并给出实体快捷方式名称时,它会返回一个错误:

  [DoctrineORMORMException]
  Unknown Entity namespace alias 'ExampleTemplateBundle'.

(是的,实体存在,实体快捷方式名称正确)

有没有办法在供应商中使用Symfony2和Doctrine2生成CRUD?

您不能修改供应商。尝试继承它并为自己的实体创建crud。

我找到了解决方案!

我已经找到错误并更正了问题。它位于条令/条令捆绑包中(对我来说v1.2.0)。

使过程失败的东西位于文件DoctrineBundle/Mapping/MetadataFactory.php

编辑:对于使用条令捆绑包v1.3.0及以上版本的人,文件已更改名称。现在是DisconnectedMetadataFactory.php

失败的代码如下:

    private function getBasePathForClass($name, $namespace, $path)
{
    $namespace = str_replace('\', '/', $namespace);
    $search = str_replace('\', '/', $path);
    $destination = str_replace('/'.$namespace, '', $search, $c);
    if ($c != 1) {
        throw new RuntimeException(sprintf('Can't find base path for "%s" (path: "%s", destination: "%s").', $name, $path, $destination));
    }
    return $destination;
}

所以我所做的是,我分叉回购,用以下代码替换代码:

private function getBasePathForClass($name, $namespace, $path)
{
    $namespace = str_replace('\', '/', $namespace);
    $search = str_replace('\', '/', $path);
    $destination = str_replace('/' . $namespace, '', $search);
    return $destination;
}

并更新了我的composer.json以使用条令/条令捆绑包的分叉版本。现在它就像一个符咒。

相关内容

  • 没有找到相关文章

最新更新