首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是个教条错误吗?需要一个不存在的文件

这是个教条错误吗?需要一个不存在的文件
EN

Stack Overflow用户
提问于 2016-02-16 05:51:30
回答 2查看 647关注 0票数 0

我一步一步地遵循开始学习教义教程,我几乎完成了它.但令人惊讶的是,接近尾声时,我遇到了一个奇怪的问题。

我无法让show_bug.php脚本工作,尽管几乎相同的show_product.php脚本工作起来很有魅力。当我尝试使用该show_bug.php脚本时,不会给出错误消息(即使使用ini_set(‘display_errors’, ‘On’);error_reporting(E_ALL);),也不会抛出任何异常,但是“什么都不会发生”,也不会采取预期的操作。

在调试器的帮助下,我能够更准确地定位问题:编译器突然退出到vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php的第211行。

这一行的内容是

代码语言:javascript
复制
require $fileName;

$fileName的值是/var/folders/n2/_p480vgx4dx4rkk0prvbsbsr0000gn/T/__CG__User.php,这是我的系统中一个不存在的文件.

下面是回溯跟踪堆栈:

代码语言:javascript
复制
Doctrine\Common\Proxy\AbstractProxyFactory->getProxyDefinition()
in vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php

Doctrine\Common\Proxy\AbstractProxyFactory->getProxy()
in vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php

Doctrine\ORM\UnitOfWork->createEntity()
in vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php

Doctrine\ORM\Internal\Hydration\SimpleObjectHydrator->hydrateRowData()
in vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SimpleObjectHydrator.php

Doctrine\ORM\Internal\Hydration\SimpleObjectHydrator->hydrateAllData()
in vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SimpleObjectHydrator.php

Doctrine\ORM\Internal\Hydration\AbstractHydrator->hydrateAll()
in vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php

Doctrine\ORM\Persisters\BasicEntityPersister->load()
in vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php

{main}()
in show_bug.php

任何帮助都很感激。

更新:正如马丁的答案所建议的,我在我的项目目录中创建了一个Proxies子目录,并将bootstrap.php文件的内容修改如下:

代码语言:javascript
复制
<?php
// bootstrap.php
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;

require_once "vendor/autoload.php";

$paths = array("src/");
$isDevMode = false;

// the connection configuration
$dbParams = array(
    'driver'   => 'pdo_mysql',
    'user'     => 'root',
    'password' => 'root',
    'dbname'   => 'flea_database',
);

$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
$proxyDir='/Users/ewandelanoy/Documents/Math_Software/Symfony_stuff/flee_tracker/Proxies';

$config -> setProxyDir($proxyDir); 

$entityManager = EntityManager::create($dbParams, $config);

应用程序的行为没有改变: show_product.php工作,但show_bug.php什么也不做。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-10 10:14:20

尝试使用命令行生成代理文件。

代码语言:javascript
复制
php vendor/bin/doctrine.php orm:generate-proxies

这对我有帮助。

票数 2
EN

Stack Overflow用户

发布于 2016-02-16 09:22:53

在我看来,它似乎无法创建代理类(可能您的脚本没有写到/var/folders的权限)。看看配置

在设置方法中,提出了几个假设:

  • ..。
  • 如果没有设置第三个参数$proxyDir,请使用系统临时目录。

尝试将$proxyDir设置为项目中的某个临时目录,并设置对其的写入权限。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35424755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档