试图访问Yii fixture对象时,这些对象为空
我有以下测试文件试图访问Yii fixture对象时,这些对象为空,yii,Yii,我有以下测试文件 <?php class DisplayAlbumTest extends CDbTestCase { public $fixtures = array( 'displayalbums' => 'DisplayAlbum', 'displayphotos' => 'DisplayPhoto', ); /** * Get title * * @group v1.0 * @group now */
<?php
class DisplayAlbumTest extends CDbTestCase
{
public $fixtures = array(
'displayalbums' => 'DisplayAlbum',
'displayphotos' => 'DisplayPhoto',
);
/**
* Get title
*
* @group v1.0
* @group now
*/
public function testGetTitle()
{
$oAlbum = $this->displayalbums('get_title');
var_dump($oAlbum);
die('nope!');
$this->assertEquals('Get title test', $oAlbum->getTitle());
}
}
我可以使用数组中的数据创建新对象并测试方法,但这意味着我必须重写所有测试(此文件中的其他测试因此失败),这很奇怪,因为我在其他没有失败的测试中使用此方法
我查看了MySQL日志,最后运行的查询是选择我想要的相册的查询
SELECT * FROM `DisplayAlbum` `t` WHERE `t`.`displayalbumid`=60 LIMIT 1
如果我运行查询,它将返回正确的结果,因此问题不在于数据库
当我尝试从设备访问项目时,为什么该值为空?我遇到了相同的问题,解决方案是默认范围“阻止”了它
在mysql中,我将属性的默认属性设置为零,但默认范围条件是
$t.“attribute”=1
。可能你有一个类似的问题…同样的问题,你找到解决方案了吗?我几乎重写了所有涉及的内容,并解决了它。但没有找到原因。
<?php
Yii::setPathOfAlias('api', '../api/');
return CMap::mergeArray(
require(dirname(__FILE__).'/main.php'),
array(
'components'=>array(
'fixture'=>array(
'class'=>'system.test.CDbFixtureManager',
),
/* uncomment the following to provide test database connection
'db'=>array(
'connectionString'=>'DSN for test database',
),
*/
'db'=>$TEST_DB_SETTINGS,
),
)
);
array(1) {
["get_title"]=>
array(2) {
["title"]=>
string(14) "Get title test"
["displayalbumid"]=>
string(1) "1"
}
}
SELECT * FROM `DisplayAlbum` `t` WHERE `t`.`displayalbumid`=60 LIMIT 1