私は以前、質問に関する良い情報を提供していませんでした.私の質問は、ケーキ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;
}
何をすべきか提案してください..またはこれを行うための他の方法..