15

我在 Windows 8、php 5.4 上配置教义 orm 时遇到了一些问题。我已经使用 Composer 安装了 Doctrine。

我已经按照文档进行了操作,但是当我运行任何命令时,php vendor/bin/doctrine orm:schema-tool:create例如,我的命令行只输出

SRC_DIR="`pwd`"
cd "`dirname "$0"`"
cd "../doctrine/orm/bin"
BIN_TARGET="`pwd`/doctrine"
cd "$SRC_DIR"
"$BIN_TARGET" "$@"

我也尝试过 php vendor/bin/doctrine.php.... 但它只是打印出上面的内容。

我遵循了 Doctrine 的信函指南。有没有人见过这个,如果有,你能建议什么吗?

4

9 回答 9

23

我找到了解决方案

在 vendor/doctrine/orm/bin/ 中还有一个 bin 文件夹,你可以像这样使用这个

php 供应商/学说/orm/bin/学说 orm:schema-tool:create

确保您有根文件夹,并且根文件夹中存在 cli-config.php 文件。

下面是我找到解决方案的位置

https://groups.google.com/forum/#!msg/doctrine-user/_ph183Kh-5o/_P_coljB-dcJ

这对我来说很好。

于 2013-05-05T08:42:59.487 回答
13

我有同样的问题。以下解决方案对我有用:

"vendor/bin/doctrine.bat" orm:schema-tool:create

所以,基本上你:

  • 使用 Doctrine 提供的“.bat”文件和
  • 将对该“.bat”文件的调用括在引号中。

我的环境

Windows 7 专业版 (x64)
PHP 5.5.12
学说 ORM 2.4.4

于 2014-09-19T16:53:51.190 回答
6

不要写“php...”(它会写文件内容)

只需“vendor\bin\doctrine orm:schema-tool:create”就可以完成这项工作(来自项目根目录,例如 c:\php\theProject)。

接下来,您将需要项目根目录中的“cli-config.php”...

于 2013-04-04T05:20:21.887 回答
3

对于 Window 版本,使用反斜杠“\”

vendor\bin\doctrine orm:schema-tool:create

不是正斜杠“/”

vendor/bin/doctrine orm:schema-tool:create

于 2019-05-06T02:15:44.960 回答
2

您可以安装git bash之类的东西,也可以简单地使用脚本的 PHP 版本:

php vendor\bin\doctrine.php orm:info

显然,php二进制目录应该在您的PATH环境变量中,否则,它类似于:

C:\path\to\php.exe vendor\bin\doctrine.php orm:info
于 2013-03-26T05:42:33.753 回答
0

我发现它没有从教义.php.bat 中返回任何内容。原来这是我的 cli-config.php 文件中的 PHP 错误

于 2015-03-16T04:02:40.750 回答
0
  1. 复制doctrine.bat(位于vendor/bin/doctrine.bat)到你的项目根目录
  2. bootstrap.php在项目根目录内的任意路径中 创建一个文件,内容如下:

    use Doctrine\ORM\Tools\Setup;
    use Doctrine\ORM\EntityManager;
    
    $paths = array("../model");
    $isDevMode = false;
    $dbParams = array(
        'driver'   => 'pdo_mysql',
        'host' => 'localhost',
        'user'     => 'root',
        'password' => '',
        'dbname'   => 'angular_php',
    );
    
    $config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
    $entityManager = EntityManager::create($dbParams, $config);
    
  3. cli-config.php在您的项目根目录中创建一个包含以下内容的文件:

    <?php
    
    use Doctrine\ORM\Tools\Console\ConsoleRunner;
    
    // replace with file to your own project bootstrap
    require_once 'path/to/file/bootstrap.php';
    
    return ConsoleRunner::createHelperSet($entityManager);
    
  4. 从命令行窗口(CMD)执行:

    c:\path\to\project\root\directory>doctrine --help
    
  5. 完成!

于 2014-10-29T23:36:43.827 回答
0

在 Windows 上使用 Cygwin 并通过作曲家安装了学说,遇到了同样的问题

通过以下方式解决:

供应商/bin/doctrine.bat orm:convert-mapping

如果您仍然遇到问题,您可以使用 php 运行 cli 脚本来运行控制台工具:

例如

php cli-config.php orm:schema-tool:create

于 2015-04-08T13:35:39.910 回答
0

这个问题的所有答案要么过时,要么完全不正确。就我而言,我观察到,在安装库后,“\vendor\doctrine\orm\”文件夹完全为空。文档要求您运行 vendor/bin/doctrine,然后它会尝试调用“vendor\doctrine\orm\bin\doctrine[.php]”(php 文件扩展名是可选的)。发现这一点后,我从 git 存储库下载了库并替换了 composer 安装的版本。

php vendor/doctrine/orm/bin/doctrine

然后工作正常。

此外,请注意 cli-config.php 文件必须存在于项目的根目录中的常见误解。将它留在您的配置文件夹中很好

于 2020-01-24T18:11:25.227 回答