Zend framework 曾德律师事务所;Doctrine2:命令行脚本中的代理出错
我正在与Zend和Doctrine2合作,我需要使用相同的结构创建一些cronjobs。问题是,当我试图从一个与另一个模型有关系的模型中获取存储库时,我得到了一个错误(只有在命令行中,在网站中,如果我这样做,就可以正常工作) 这是我在命令行中遇到的错误: 致命错误:在第92行的c:\php\library\Doctrine\ORM\Proxy\ProxyFactory.php中找不到类“Proxy\Model\u MediaPresetsProxy” 我在这个文件夹/application/models/proxies/中有代理,Model\u MediaPresetsProxy文件就在那个目录中Zend framework 曾德律师事务所;Doctrine2:命令行脚本中的代理出错,zend-framework,doctrine-orm,Zend Framework,Doctrine Orm,我正在与Zend和Doctrine2合作,我需要使用相同的结构创建一些cronjobs。问题是,当我试图从一个与另一个模型有关系的模型中获取存储库时,我得到了一个错误(只有在命令行中,在网站中,如果我这样做,就可以正常工作) 这是我在命令行中遇到的错误: 致命错误:在第92行的c:\php\library\Doctrine\ORM\Proxy\ProxyFactory.php中找不到类“Proxy\Model\u MediaPresetsProxy” 我在这个文件夹/application/mo
<?php
namespace Proxy;
/**
* THIS CLASS WAS GENERATED BY THE DOCTRINE ORM. DO NOT EDIT THIS FILE.
*/
class Model_MediaPresetsProxy extends \Model_MediaPresets implements \Doctrine\ORM\Proxy\Proxy
{
[...]
过了一会儿,我找到了解决办法
问题是我创建了两个不同的环境:开发和CLDEV(命令行开发)
我的getEntityManager()函数与
[...]
$config->setAutoGenerateProxyClasses((APPLICATION_ENV == 'development'));
[...]
所以我把它换成了
[...]
$config->setAutoGenerateProxyClasses((APPLICATION_ENV == 'development' || APPLICATION_ENV == 'cldev'));
[...]
问题解决了。希望它将来能帮助其他人。在Model_MediaQueue中,您导入了ArrayCollection,但仍在构造函数中使用FQN:Phehe。。谢谢那是我的第一个模型,我没有注意到那条线还在那里
<?php
use Doctrine\Common\Collections\ArrayCollection;
/**
* @Entity
* @Table(name="media_queue")
*/
class Model_MediaQueue
{
/**
* @Id @Column(type="integer")
* @GeneratedValue(strategy="AUTO")
*/
private $queue_id;
/**
* @ManyToOne(targetEntity="Model_MediaPresets")
* @JoinColumn(name="queue_preset_id", referencedColumnName="preset_id")
*/
private $media_preset;
/**
* @ManyToOne(targetEntity="Model_Sites", inversedBy="media_list")
* @JoinColumn(name="queue_site_id", referencedColumnName="site_id")
*/
private $media_site;
/**
* @Column(type="string")
*/
private $source_media_file;
/** @Column(type="integer") */
private $result_media_id;
/** @Column(type="integer") */
private $queue_status;
/** @Column(type="integer") */
private $queue_added;
/** @Column(type="integer") */
private $queue_processed;
public function __construct()
{
$this->media_preset = new \Doctrine\Common\Collections\ArrayCollection();
$this->media_site = new \Doctrine\Common\Collections\ArrayCollection();
}
[...]
}
<?php
/**
* @Entity
* @Table(name="media_presets")
*/
class Model_MediaPresets
{
/**
* @Id @Column(type="integer")
* @GeneratedValue(strategy="AUTO")
*/
private $preset_id;
/**
* @Column(name="preset_type", type="string", columnDefinition="enum('video', 'photo')")
*/
private $preset_type;
/** @Column(type="string") */
private $preset_name;
/** @Column(type="string") */
private $preset_formats_order;
/** @Column(type="integer") */
private $preset_size_w;
/** @Column(type="integer") */
private $preset_size_h;
/**
* @Column(name="preset_resize_method", type="string", columnDefinition="enum('Maintain', 'Stretch', 'Centre', 'Abort')")
*/
private $preset_resize_method;
/** @Column(type="string") */
private $preset_watermark;
/** @Column(type="string") */
private $preset_background;
}
[...]
$config->setAutoGenerateProxyClasses((APPLICATION_ENV == 'development'));
[...]
[...]
$config->setAutoGenerateProxyClasses((APPLICATION_ENV == 'development' || APPLICATION_ENV == 'cldev'));
[...]