小编bai*_*ano的帖子

Doctrine OneToMany关系错误

我试图通过Symfony2(2.3.0)使用Doctrine(2.2.3+)在我的数据库中的对象上建立一些ManyToOne/OneToMany关系,并得到一个奇怪的错误.以下是对象的相关部分(一个产品的许多属性):

/**
 * Product
 *
 * @ORM\Table(name="product")
 * @ORM\Entity
 */
class Product
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    ...

    /**
     *
     * @OneToMany(targetEntity="ProductAttributes", mappedBy="product")
     */
    protected $product_attributes;

    public function __construct() {
        $this->product_attributes = new \Doctrine\Common\Collections\ArrayCollection();
    }
}

/**
 * ProductAttributes
 *
 * @ORM\Table(name="product_attributes")
 * @ORM\Entity
 */
class ProductAttributes
{
    /**
     * @var integer
     *
     * @ORM\Column(name="pa_id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $pa_id;

    /**
     * @var integer
     *
     * …
Run Code Online (Sandbox Code Playgroud)

one-to-many many-to-one symfony doctrine-orm

11
推荐指数
1
解决办法
1万
查看次数

Javascript相当于PHP的$$ varName

可能重复:
如何通过串联创建另一个变量来访问javascript变量值?

在PHP中,我可以:

$theVariable = "bigToe";
$bigToe = "is broken";
Run Code Online (Sandbox Code Playgroud)

这样:

echo "my ".$theVariable." ".$$theVariable;
Run Code Online (Sandbox Code Playgroud)

会显示

my bigToe is broken
Run Code Online (Sandbox Code Playgroud)

我将如何进行与JavaScript类似的操作?

javascript php variable-variables

6
推荐指数
2
解决办法
502
查看次数

"增强PHP"入门

我希望将测试框架合并到我正在构建的项目中,并且遇到了我喜欢的增强PHP但我在线查找相关信息有些困难,因为"增强php"是一个常用的短语.

有没有人使用这个框架,可能会指向我一些有用的指南?您是否使用过您认为更好的单元测试框架?

提前致谢.

在回应Gotzofter时,这是要测试的类:

<?php
include_once('EnhanceTestFramework.php');

class ExampleClass
{
    private $OtherClass;

    function __construct($mock = null)
    {
        if ($mock == null)
            $this->OtherClass = new OtherExampleClass();
        else
            $this->OtherClass = $mock;
    }

    public function doSomething()
    {
        return $this->OtherClass->getSomething(1, 'Arg2');
    }
}

class OtherExampleClass
{
    public function getSomething()
    {
        return "Something";
    }
}

class ExampleClassTests extends \Enhance\TestFixture
{
    public function setUp() 
    {
    }

    public function tearDown()
    {
    }

    public function verifyWithAMock() 
    {
        $mock = \Enhance\MockFactory::createMock('OtherExampleClass');
        $mock->addExpectation(
            \Enhance\Expect::method('getSomething')
                ->with(1, 'Arg2')
                ->returns('Something')
                ->times(1)
            ); …
Run Code Online (Sandbox Code Playgroud)

php unit-testing

6
推荐指数
1
解决办法
556
查看次数

mySQL将多个结果放入一个结果行

我有一个表按产品ID存储图像URL,我正在尝试编写一个查询,将所有图像结果拉到一行.该表看起来像:

photoFlag photoName objectID
Run Code Online (Sandbox Code Playgroud)

其中photoName包含图像的相对路径,photoFlag标识图像的类型(完整,拇指等).我开始编写一个快速查询来获取两个图像(带有不同的标记).这就是我所拥有的:

select t2.pic, t4.pic, t2.id from
 (select p2.photoName as pic, p2.objectID as id from ds_photos as p2 where p2.photoFlag = 2) as t2,
 (select p4.photoName as pic, p4.objectID as id from ds_photos as p4 where p4.photoFlag = 4) as t4
where t2.id=t4.id
Run Code Online (Sandbox Code Playgroud)

这似乎是一个正确的查询,但当我通过phpMyAdmin执行时,它永远不会返回结果并在"SHOW PROCESS"列表中无限期地显示(好吧,至少大约40分钟).有没有什么我错了,我在这里没有看到导致无限循环?

理想情况下,我想只抓取photoFlag = 2的图片(有些产品有多个图像)并将它们放入同一行,但我不知道从哪里开始.有什么建议?

谢谢您的帮助.

mysql

4
推荐指数
1
解决办法
1782
查看次数