Laravel - 递归类别系统

时间:2014-08-11 06:53:33

标签: recursion laravel laravel-4

我正在尝试为基本控制器中的cat系统编写一个全局fn。 这里是基础内的fn

public function rec_cat($table,$col,$col_id,$rec_arr=array()) {
  $ups=DB::table($table)->where($col,$col_id)->get();
  foreach ($ups as $up) {
    $rec_arr[]=$up;
    $this->rec_cat($table,$col,$col_id,$rec_arr);
  }
  return $rec_arr;
}

当我尝试在我的控制器中调用此fn时

$select=$this->rec_cat('kategori','up_id','0');
return var_dump($select);

我收到此错误

Allowed memory size of 134217728 bytes exhausted (tried to allocate 196605 bytes)

错误中写入的字节小于允许的内存大小,因此我认为还有其他问题。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

你的函数中有一个无限循环,它只是一遍又一遍地调用自己,直到你的内存不足为止。

我无法告诉您要做什么,但每次只使用相同的变量调用相同的函数。

您需要在每次递归调用时提供新变量..