StudentCourse.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Model;
  4. class StudentCourse extends Model
  5. {
  6. protected $table = 'student_courses';
  7. protected $guarded = [];
  8. public function course()
  9. {
  10. return $this->hasOne('App\Models\Course', 'id', 'course_id');
  11. }
  12. public function getTeacherNames()
  13. {
  14. if($this['assign_teacher'] == 1) {
  15. return '全部';
  16. }
  17. $ids = $this['studentCourseTeachers']->pluck('teacher_id');
  18. return (new Teacher())->whereIn('id', $ids)->get()->implode('name', ',');
  19. }
  20. public function getTeacherFullNames()
  21. {
  22. if($this['assign_teacher'] == 1) {
  23. return '全部';
  24. }
  25. $ids = $this['studentCourseTeachers']->pluck('teacher_id');
  26. return (new Teacher())->whereIn('id', $ids)->get()->implode('name', '/');
  27. }
  28. public function studentCourseTeachers()
  29. {
  30. return $this->hasMany('App\Models\StudentCourseTeacher');
  31. }
  32. public function getTeacherIds()
  33. {
  34. if($this['assign_teacher'] == 1) {
  35. return collect();
  36. }
  37. return $this['studentCourseTeachers']->pluck('teacher_id');
  38. }
  39. public function updateStudentCourseTeachers($teachers, $assign_teacher)
  40. {
  41. StudentCourseTeacher::where('student_course_id', $this['id'])->delete();
  42. if($assign_teacher == 2) {
  43. if(!empty($teachers) && is_array($teachers)) {
  44. foreach($teachers as $teacher) {
  45. StudentCourseTeacher::create([
  46. 'student_course_id' => $this['id'],
  47. 'teacher_id' => $teacher,
  48. 'student_id' => $this['student_id']
  49. ]);
  50. }
  51. }
  52. } else {
  53. StudentCourseTeacher::create([
  54. 'student_course_id' => $this['id'],
  55. 'teacher_id' => 0,
  56. 'student_id' => $this['student_id']
  57. ]);
  58. }
  59. }
  60. }