首页 > 学院 > 开发设计 > 正文

Laravel5 关联查询 —— 多级一对多的实现

2019-11-06 08:22:21
字体:
来源:转载
供稿:网友

例如一个学校,学校有许多年级,年级有许多班级,班级里有许多老师,那么这种多级的多对一该怎么实现呢?

1.先设置他们的Model

学校的: School.php

[php] view plain copy PRint?<?php    namespace App;    use Illuminate/Database/Eloquent/Model;    class schoolClass extends Model  {      protected $table = 'schools';      public function hasManyGrades(      {       return $this->hasMany('App/Grade', 'school_id', 'id');     }  }  

年级的:Grade.php

[php] view plain copy print?<?php    namespace App;    use Illuminate/Database/Eloquent/Model;    class Grade extends Model  {      protected $table = 'grades';        public function hasManyClasses()          {              return $this->hasMany('App/schoolClass', 'grade_id', 'id');          }  }  

班级的:schoolSchool.php

[php] view plain copy print?<?php    namespace App;    use Illuminate/Database/Eloquent/Model;    class schoolClass extends Model  {      protected $table = 'jjxiao_classes';        public function hasManyTeachers()          {              return $this->hasMany('App/Teacher', 'class_id', 'id');          }  }  

老师的:Teacher.php

[php] view plain copy print?<?php    namespace App;    use Illuminate/Database/Eloquent/Model;    class Teacher extends Model  {    protected $table = 'jjxiao_teacher_staffs';       }  

2.控制器里面查出

[php] view plain copy print?public function index(){         $id=1;         $school=School::find($id);         $grades=$school->hasManyGrades()->get();//找到所有的年级                  foreach($grades as $g){             $classes[]=$g->hasManyClasses()->get();   //每个年级找到所对应的班级             }                  foreach ($classes as $cl) {             foreach($cl as $c){                 $teachers[]=$c->hasManyTeachers()->get(); //每个班级找到老师             }         }           foreach ($teachers as $te) {  //给数组脱维             foreach($te as $t){                $teacher[]=$t;             }         }         return view('home.myschool_teacher.index')             ->withGrade($grades)             ->withTeacher($teacher);     }  
上一篇:c#入门

下一篇:入驻CSDN

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表