FindAll()无法在Yii Framework中使用

时间:2014-08-16 06:47:52

标签: php yii

我的型号名称是销售。

$allSales = Sales::model()->findAll();

$ allSales不返回任何内容(空白)。但它使用我的本地计算机(Ubuntu)和不能在实时服务器上运行(Mac)

$allSales2 = Sales::model()->findAll("id < 2000");

$ allSales2正在两台服务器上运行

请帮帮我。提前谢谢。

2 个答案:

答案 0 :(得分:1)

(空白)含糊不清,但如果页面本身在加载时为空白,则可能会出现内存不足错误。这很常见,一次查询大量活动记录。检查php_error.log文件以及每台服务器上php.ini中的相应内存限制。

您还可以尝试使用CDataProviderIterator来获取所有模型,而不是findAll()

$dataProvider = new CActiveDataProvider('Sales');
$allSales = new CDataProviderIterator($dataProvider);

foreach ($allSales as $model) {
    //do whatever
}

如果您的问题是内存问题,那么应该解决它。

如果没有,请将var_dump($allSales);添加到原始代码中,并从实时服务器报告结果。

答案 1 :(得分:0)

您需要将条件作为数组传递。试试这个

$allSales2 = Sales::model()->findAll(
    array(
         "condition" => "id <  2000"
    )
);

如果您不想在findAll中使用数组,那么可以使用CDbCriteria,如下所示

$criteria = new CDbCriteria;
$criteria->select = '*';
$criteria->condition = 'id < 2000';
$allSales2 = Sales::model()->findAll($criteria);