Tag: 教条

如何在Symfony 2 / Doctrine中启用ENUM

当运行doctrine:mapping:import我得到一个错误: Doctrine \ DBAL \ Platforms \ MySqlPlatform可能不支持未知的数据库types枚举。 看来我需要设置use_native_enum为true如何。 但是,所有文档和博客文章都是指Symfony <1.4。 Symfony 2中有没有什么解决scheme?

Symfony2 – 使用没有任何实体的Form Builder

我一直使用Symfony2的表单生成器,并发现它相当不错。 我发现自己想创build一个search页面,在顶部有一系列的框来过滤search结果。 截至目前,我有三个不同的实体(法官,口译员,律师)。 我希望用户能够input部分或完整的名称,并让它search所有的实体。 我可以处理实际的search部分,但是表单生成器的生成是给我的麻烦。 我想要做的是创build一个不附加到任何特定实体的表单。 我在Symfony网站上阅读的所有教程和文档都是默认情况下应该附加到实体上的。 我想知道如果我应该只是将其附加到任何实体,只是将每个文本字段设置为映射= false,如果这是一个实例,我应该只是硬编码自己的forms,或者如果有某种方式在表单构build器。

Symfony 2 + Doctrine 2 + PHPUnit 3.5:closuresexception的序列化

我试图在Google上find这方面的信息,但没有发现。 我有一个从WebTestCaseinheritance的TestCase类,在我所有的单元/函数testing中都使用了一些方法: <?php namespace Application\FaxServerBundle\Test; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; use Doctrine\Common\DataFixtures\Loader; use Doctrine\Common\DataFixtures\Executor\ORMExecutor; use Doctrine\Common\DataFixtures\Purger\ORMPurger; use Application\FaxServerBundle\DataFixtures\ORM\NetworkConfigurationData; class TestCase extends WebTestCase { protected $kernel; public function setUp() { parent::setUp(); } public function getEm() { return $this->getService( 'doctrine.orm.entity_manager' ); } public function getNetworkConfigurationRepository() { return $this->getEm()->getRepository( 'Application\FaxServerBundle\Entity\NetworkConfiguration' ); } public function loadNetworkConfigurationFixtures() { $loader = new Loader(); $loader->addFixture( […]

与原则一起使用原始的SQL

我有一些非常复杂的查询,我需要用它来在我的应用程序中生成报告。 我使用symfony作为我的框架和学说作为我的ORM。 我的问题是这样的: 将高度复杂的sql查询直接传递给Doctrine而不将其转换为Doctrine查询语言的最佳方法是什么? 我一直在阅读关于Raw_SQL扩展,但似乎仍然需要在部分中传递查询(如from() )。 有没有什么只是倾倒在一堆原始的SQL命令?

用Doctrine 2检查重复的键

有一个简单的方法来检查重复密钥与教条2之前做一个刷新?

为什么MySQL不支持毫秒/微秒精度?

所以我只是发现了MySQL中最令人沮丧的错误 。 显然, TIMESTAMP字段和支持函数不支持比秒更高的精度! 所以我使用PHP和Doctrine,我真的需要这些微秒(我正在使用actAs: [Timestampable]属性)。 我发现我可以使用BIGINT字段来存储值。 但会学说加几毫秒? 我认为它只是将NOW()分配给该字段。 我也担心date操纵函数(在SQL中)通过代码散落将打破。 我也看到了一些关于编译UDF扩展的东西。 这是不可接受的,因为我或未来的维护人员会升级,篡改,改变。 有没有人find一个合适的解决方法?

理解学术级联操作

我想检查我对Doctrine关联的级联操作的理解。 为了这个问题,我有两个模型: Customer和Insuree 。 如果我定义Customer与被Insuree之间的多对多关系并设置cascade{"all"} ,则我明白这将会: 向客户添加新的保险公司将坚持这位保险公司,并在连接表中创build一个关联。 从收集中移除保险公司将把保险公司与顾客分离,并将顾客从保险公司中分离出来。 删除客户将删除与客户相关的所有保险公司。 这是Customers关系的定义。 /** * @ORM\ManyToMany(targetEntity="Insuree", inversedBy="customers", cascade={"all"}) * @ORM\JoinTable(name="customer_insuree", * joinColumns={@ORM\JoinColumn(name="customer_id", referencedColumnName="id")}, * inverseJoinColumns={@ORM\JoinColumn(name="insuree_id", referencedColumnName="id")} * ) */ protected $insurees; 如果我定义了Insuree和Customer之间的Insuree关系,并设置cascade{"all"} ,我知道这将会: 向保险公司添加新客户将坚持这个客户,并在连接表中创build一个关联。 将客户从收集品中移除将使顾客与保险公司分离,并将保险公司与顾客分离。 删除保险公司将删除与之相关的所有客户。 这是Insurees的定义。 /** * @ORM\ManyToMany(targetEntity="Customer", mappedBy="insurees", cascade={"all"}) */ protected $customers; 然后,如果我将关系定义为在坚持,合并和分离时级联 – 删除保险公司不会删除所有关联的客户 – 它只会消除保险公司和客户之间的关联? /** * @ORM\ManyToMany(targetEntity="Customer", mappedBy="insurees", cascade={"persist", "merge", "detach"}) */ […]

在Symfony 2 WebTestCase上创buildtesting数据库和加载装置的最佳方法是什么?

我有一个WebTestCase在我的应用程序中执行一些基本的路线。 我想在PHPUnit的setUp方法中创build一个和我的主数据库完全相同的testing数据库,然后在其中加载fixture。 我目前正在做一些解决方法,并执行一些控制台命令,如下所示: class FixturesWebTestCase extends WebTestCase { protected static $application; protected function setUp() { self::runCommand('doctrine:database:create'); self::runCommand('doctrine:schema:update –force'); self::runCommand('doctrine:fixtures:load –purge-with-truncate'); } protected static function runCommand($command) { $command = sprintf('%s –quiet', $command); return self::getApplication()->run(new StringInput($command)); } protected static function getApplication() { if (null === self::$application) { $client = static::createClient(); self::$application = new Application($client->getKernel()); self::$application->setAutoExit(false); } return […]

在教条中如何使用和在哪里?

WHERE a = 1 AND (b = 1 Or b = 2) AND (c = 1 OR c = 2) 我怎样才能做到这一点在教义? $q->where("a = 1"); $q->andWhere("b = 1") $q->orWhere("b = 2") $q->andWhere("c = 1") $q->orWhere("d = 2") 这是不正确的…应该是: $q->where("a = 1"); $q->andWhere("b = 1") $q->orWhere("b = 2") $q->andWhere("c = 1") $q->orWhere("d = 2") 但我怎么能做到这一点? 在Propel是函数getNewCriterion ,并在学说…?

使用symfony2和doctrine从现有数据库生成单个实体

是否有可能使用Symfony2控制台工具从数据库中生成一个实体? 在编码的中间,我不得不添加一个表,并且对现有的实体类进行了修改。 所以我不希望所有的实体都重新生成。 任何build议将不胜感激!