我试图通过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) 在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类似的操作?
我希望将测试框架合并到我正在构建的项目中,并且遇到了我喜欢的增强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) 我有一个表按产品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的图片(有些产品有多个图像)并将它们放入同一行,但我不知道从哪里开始.有什么建议?
谢谢您的帮助.
php ×2
doctrine-orm ×1
javascript ×1
many-to-one ×1
mysql ×1
one-to-many ×1
symfony ×1
unit-testing ×1