Laravel 5.3 выберите метод срывания

Контроллер метод:

public function edit($id){

    $match2 = Match::pluck('team_a_id', 'id');
    return view('admin.accept.edit', compact('match2'));

}

И просмотреть файл:

{{ Form::select('matches_id', $match2, null, ['class' => 'form-control']) }}

И мой стол:

Стол из модели Match (имя таблицы: совпадения):

введите описание изображения здесь

Стол из модели Team (название таблицы: команды):

введите описание изображения здесь

Таблица teams связан (ссылки) с таблицей matches(team_a_id а также team_b_id связан с таблицей teams). select метод с view вернул мне только ID с таблицами:

введите описание изображения здесь

Мне нужно иметь team_name со столом teams не id, Когда я меняю метод срыва:

$match2 = Match::pluck('id', 'id');

И посмотреть:

 {{ Form::select('matches_id', Team::find($match2)->team_a_id." vs. ".Team::find($match2)->team_b_id, null, ['class' => 'form-control']) }}

Laravel вернул ошибку:

Указан неверный аргумент для foreach () (представление: C:\xampp\htdocs\football\football\resources\views\admin\accept\edit.blade.php)

Это метод редактирования, поэтому я должен выделить запись, которая была ранее выбрана.

2 ответа

Решение

Хорошо, я ремонтирую это. Я пишу метод:

public function edit($id){

    $match = Match::select()->orderBy('updated_at', 'asc')->get();
    $selectedMatch = DB::table('usermatches')->find($id)->matches_id;

    return view('admin.accept.edit', compact('match', 'selectedMatch'));

}

И посмотреть:

  <select name="matches_id" id="matches_id" class="form-control selectpicker" data-live-search="true" data-size="5">
    <option value=0>Wybierz wydarzenie</option>
      @foreach($match as $role)
          <option value="{{ $role->id }}" {{ $selectedMatch == $role->id ? 'selected="selected"' : '' }}>
            {{ Team::find($role->team_a_id)->team_name }} vs. {{ Team::find($role->team_b_id)->team_name }} ({{$role->date}}; <?php echo date('G:i',strtotime($role->time)); ?> | Liga {{ League::find($role->league_id)->name }} | {{ Sport::find($role->sport_id)->name }}) 
          </option>  
      @endforeach
  </select>

В виде модели я сравниваю id с двумя таблицами и все работает;)

{{ $selectedMatch == $role->id ? 'selected="selected"' : '' }}

Попробуйте это: $match2 = Match::pluck('team_a_id', 'id')->toArray()

Другие вопросы по тегам