使用Yii的CRUD生成器(gii)并对生成的表单稍作修改后,我收到此错误消息:
[14-Jul-2012 05:12:58 UTC] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 40 bytes) in D:\apps\trulabel\framework\db\ar\CActiveRecord.php on line 1794
我相信我已经将问题缩小到试图从项目表中提取22,000行。对我来说似乎有点奇怪,因为我认为它会毫无困难地处理。关于可能出现什么问题的建议或解决方法?
形式:
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'spec-definition-form',
'enableAjaxValidation'=>false,
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary($model); ?>
<div class="row">
<?php echo $form->labelEx($model,'labelTypeId'); ?>
<?php echo $form->dropDownList($model, 'labelTypeId', CHtml::listData(LabelType::model()->findAll(), 'id', 'name')); ?>
<?php echo $form->error($model,'labelTypeId'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'customer'); ?>
<?php echo $form->dropDownList($model, 'customer', CHtml::listData(Tblarcustomer::model()->findAll(), 'Customer', 'Name')); ?>
<?php echo $form->error($model,'customer'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'item'); ?>
<?php echo $form->dropDownList($model, 'item', CHtml::listData(TblimItem::model()->findAll(), 'Item', 'Item')); ?>
<?php echo $form->error($model,'item'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
答案 0 :(得分:2)
增加php的内存限制,它将解决您的问题。
您可以使用以下方法增加记忆:
ini_set('memory_limit','16M');
答案 1 :(得分:1)
默认情况下,yii在debug mode中运行,这会从php分配的内存中消耗更多内存,以生成内部日志。
您可以尝试通过注释该行来从应用程序根目录(index.php)中的yii条目条中设置它,因为默认值为“YII_DEBUG”为false:
// remove the following lines when in production mode
defined('YII_DEBUG') or define('YII_DEBUG',true);