本文实例讲述了laravel 框架实现无限级分类的方法。分享给大家供大家参考,具体如下:
模型中的代码
- namespace App\models\wxj;
- use Illuminate\Support\Facades\DB;
- use Session;
- class Wxjlx
- {
- public function r(){
- //输出数据库的所有内容
- $sql=DB::table('wxjlx')->get();
- //调用fl方法
- $result=self::fl($sql,$pid=0);
- return $result;
- }
- //创建方法 $data参数是数据库所有数据 $pid参数是数据库pid $le参数是为了区分显示级别的
- public function fl($data,$pid=0,$le=0){
- //创建一个静态数组保存数据
- static $array=array();
- //循环出所有的有关数据保存进数组
- foreach ($data as $v){
- //当第一循环是pid==0 因为上面已经设置pid==0
- if($v->pid==$pid){
- //这里是为了区分级别
- $v->le=$le;
- //将有关数据保存如数据
- $array[]=$v;
- //为了将有关数据保存数据,这里使用递归
- self::fl($data,$v->id,$le+1);
- }
- }
- //将最后的内容输出返回
- return $array;
- }
- }
-
控制器代码,只是为了调用模型中方法
- class WxjlxController extends BaseController
- {
- public function r(){
- //实例化模型
- $p=new Wxjlx();
- //调用模型方法
- $a=$p->r();
- //将数据返回视图
- return view('wxj/r',['list'=>$a]);
- }
- }
-
视图中的方法,实现效果
- @foreach($list as $v)
- {{str_repeat('-|',$v->le)}}
- {{$v->id}}
- {{$v->typename}}
- {{$v->pid}}
- <?php echo '<br>'?>
- @endforeach
-
更多关于Laravel相关内容感兴趣的读者可查看jb51专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。