我以前没有提供有关问题的良好信息。我的问题是,在 cake php .Cake php 中创建下拉树时会抛出此错误。
Fatal error: Allowed memory size of 524288000 bytes exhausted (tried to allocate 429982192 bytes) in /home/isteam/public_html/upms/app/controllers/tests_controller.php on line 85
我试图通过 php inin 函数增加运行时间的限制,但没有成功。
ini_set('memory_limit','2000M');
我的代码表结构是这样的
|id|parent_id|cat_name|
我的代码如下
function admin_takecat(){
$this->layout=false;
$this->render(false);
Configure::write('debug',2);
App::import('Model','Category');
$this->cats=new Category();
$firstlevel=$this->cats->find('list',array('fields'=>array('Category.id','Category.cat_name'),'conditions'=>array('Category.parent_id'=>0,'department_id'=>9)));
$dropbox='<select>';
foreach($firstlevel as $id=>$val){
$dropbox.='<option value='.$id.'>'.$val.'</option>';
$count=$this->cats->find('count',array('conditions'=>array('Category.parent_id'=>0,'Category.department_id'=>9,'Category.parent_id'=>$id)));
if($count>0){
$dropbox=$this->_recursive($id,$dropbox,1);
}
}
$dropbox.='</select>';
echo $dropbox;
}
function _recursive($catid,$dropbox,$level){
App::import('Model','Category');
$this->cats=new Category();
$listcats=$this->cats->find('list',array('fields'=>array('Category.id','Category.cat_name'),'conditions'=>array('Category.parent_id'=>0,'Category.department_id'=>9,'Category.parent_id'=>$catid)));
$mark='';
for($i=1;$i<=1;$i++){
$mark.='-';
}
foreach($listcats as $id=>$val){
$dropbox.='<option value='.$id.'>'.$mark.$val.'</option>';
$count=$this->cats->find('count',array('conditions'=>array('Category.parent_id'=>0,'Category.department_id'=>9,'Category.parent_id'=>$id)));
if($count>0){
$dropbox.=$this->_recursive($id,$dropbox,$level+1);
}
}
return $dropbox;
}
请建议我该怎么做..或任何其他方式来做到这一点..