PHP 在 Doctrine 的实体管理器刷新后不会打印任何内容


PHP does not print anything after Doctrine's entity manager has flushed

我正在遵循"教义入门"简单简短的教程(这里)

我遇到create_product.php文件的问题。这里是我自己的create_product.php file,它有几行代码添加到原件中用于调试:

<?php
// create_product.php
require_once "bootstrap.php";
require_once "src/Product.php";
$newProductName = $argv[1];
$product = new Product();
$product->setName($newProductName);
var_dump($product);
echo "Step 1 done'n";
$entityManager->persist($product);
echo "Step 2 done'n";
$entityManager->flush();
echo "Step 3 done'n";
echo "Created Product with ID " . $product->getId() . "'n";

当我在终端中尝试php create_product.php Alice时,我得到以下输出:

ewandelanoy$ php create_product.php Alice
class Product#22 (2) {
  protected $id =>
  NULL
  protected $name =>
  string(5) "Alice"
}
Step 1 done
Step 2 done
ewandelanoy$

如您所见,在"刷新"步骤之后没有打印任何内容,事实上,我的数据库还没有更新。

我做错了什么?任何帮助表示赞赏。

因为您不在 Symfony 项目中并且没有错误日志,所以您必须设置错误日志记录。在您的 php 文件中,您可以在文件顶部添加以下内容:

error_reporting(E_ALL);

请参阅 php error_reporting

或者,制作类似以下内容:

try {
    $entityManager->flush();
} catch ('Exception $e) {
    print $e->getMessage();
}

在刷新期间捕获异常(如果有异常)。