Извлечение данных из нескольких таблиц и представление их в комбинированном окне в Laravel - PullRequest
0 голосов
/ 28 ноября 2018

В моей базе данных есть таблица курса, которая соединяет один со многими с таблицей местоположения. Когда я пытаюсь добавить новый курс в таблицу, я выбираю местоположение этого курса, которое представлено как (Класс a, Класс b, ...), но когда я пытаюсь отредактировать это местоположение курса, представленные данные являются идентификатором этого местоположения, а не его именем

Я пишу этот код в CourseController для редактирования:

 public function edit(Course $course)
{
    $locations = Location::all();
    $loc =array();
    foreach($locations as $location)
    $loc[$location->id]=$location->name_location;

 return view('admin.courses.edit',compact('course','loc','locations'));
}

и функции обновления

    public function update(Request $request, Course $course)
{

    $course->update($request->all());
    $course->location_id = $request->input('location_id');
    return redirect()->route('courses.index')
                    ->with('success','location updated successfully');
}

В edit.blade я пробую это

      <select name='location_id' style="width:220px;">

                        <option value="{{$locations}}">{{$course->location_id}}</option>

                      </select>

в модели курса

 public function location(){

    return $this->belongsTo('App\Location');
   }

в модели местоположения

 public function courses(){
    return $this->hasMany('App\Course');
}

IХотите иметь возможность редактировать местоположение курса? Знание вставки правильно, но редактирование Нет

Может кто-нибудь сказать мне, что делать, чтобы это исправить?Я использую Laravel 5.7

1 Ответ

0 голосов
/ 28 ноября 2018

Предположим, у вас есть:

Местоположение со свойствами: id, имя

Местоположение имеет много курсов

Курс принадлежит к местоположению

public function edit(Course $course)
{
    $locations = Location::all();

    return view('admin.courses.edit',compact('course','locations'));
}

В вашем клинке:

<select name='location_id' style="width:220px;">
    @foreach ($locations as $location)
      <option value="{{$location->id}}">{{$location->name}}</option>
    @endforeach
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...