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

时间:2016-02-11 07:57:11

标签: php symfony doctrine-orm doctrine

我正在关注" Doctrine"简单,简短的教程 (here

我遇到了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$

正如您所看到的,&#34; flush&#34;之后没有任何内容打印出来。步, 事实上我的数据库还没有更新。

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

1 个答案:

答案 0 :(得分:2)

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

error_reporting(E_ALL);

请参阅php error_reporting

或者,做一些像:

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

要在刷新期间捕获异常,如果有异常。