создать список данных со значением от нескольких к одному - PullRequest
0 голосов
/ 04 марта 2019

У меня есть структура таблицы со списком идентификаторов, выбранных из выпадающего списка.Допустим, в следующем формате:

id,teacher_id,batch_id,course_id,program_id,depart_id

эти поля сохраняются в базе данных через вызов ajax.Теперь я хотел получить имя, связанное с этим id's

У меня есть функция Вот так:

public function store(StoreEmployeesRequest $request)
{
   $teacherCourse = TeacherCourse::create($request->all());
}

Здесь, после создания TeacherCourse, я хотел получитьвсе значения, связанные с $teacherCourse->teacher_id из таблицы TeacherCourse, объединить значение и создать массив в следующем формате:

{
    "id":8,
    "program":"Master of Computer", //with program_id from program table
    "course":"software engineering" //with course_id from course table
},
{
    "id":7,
    "program":"Bachelor of Pharmacy", //with program_id from program table
    "course":"Structure Programing" //with course_id from course table
}

Связь в TeacherCourse

public function course()
{
  return $this->belongsTo(Course::class,'course_id');
}

public function program()
{
  return $this->belongsTo(Program::class,'program_id');
}

Iпытался получить значение с помощью этой операции, но не удалось.Как я могу создать один массив, получив значение из нескольких таблиц?

$teacherCourse = $teachercourse->program->map(function ($program) 
{
    return $program->name;
});

1 Ответ

0 голосов
/ 04 марта 2019

попробуйте это:

$teacherCourse = $teachercourse->map(function ($teacherCourse) 
{
    return [ 
             'id' => $teacherCourse->id,
             'program' => $teacherCourse->program()->pluck('name'),
             'course' => $teacherCourse->course()->pluck('name');
           ];
})->toArray();

Я надеюсь помочь вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...