StudentCourse.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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 studentCourseTeachers()
  21. {
  22. return $this->hasMany('App\Models\StudentCourseTeacher');
  23. }
  24. public function getTeacherIds()
  25. {
  26. if($this['assign_teacher'] == 1) {
  27. return collect();
  28. }
  29. return $this['studentCourseTeachers']->pluck('teacher_id');
  30. }
  31. public function updateStudentCourseTeachers($teachers, $assign_teacher)
  32. {
  33. StudentCourseTeacher::where('student_course_id', $this['id'])->delete();
  34. if($assign_teacher == 2) {
  35. if(!empty($teachers) && is_array($teachers)) {
  36. foreach($teachers as $teacher) {
  37. StudentCourseTeacher::create([
  38. 'student_course_id' => $this['id'],
  39. 'teacher_id' => $teacher,
  40. 'student_id' => $this['student_id']
  41. ]);
  42. }
  43. }
  44. } else {
  45. StudentCourseTeacher::create([
  46. 'student_course_id' => $this['id'],
  47. 'teacher_id' => 0,
  48. 'student_id' => $this['student_id']
  49. ]);
  50. }
  51. }
  52. }