试图访问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