Как использовать форму :: Выбрать с помощью сводной таблицы в Laravel 5.6 - PullRequest
0 голосов
/ 23 июня 2018

Я пытаюсь использовать Form :: select в Laravel 5.6, но когда я зашел на страницу редактирования, в select, есть варианты со всеми данными объекта Model вместо обычного поля.

У меня есть игровая модель со связью ManyToMany с теговой моделью.

В моей функции редактирования из игрового контроллера

public function edit($item)
{        
    $tags  = Tag::all();
    return view('megadmin.games.edit', compact('item', 'tags'));
}

В моем блэйде формы:

 {!! Form::select('tags', $tags, array_pluck($tags, 'id_tag','name'), ['class' => 'form-control'])!!}

Вот результат:

Результат

Я просто хочу обычный выбор / опции с данными И я хочу получить тег модели, связанный с игрой, вФорма игры.

Спасибо вам за помощь ^^

Ответы [ 2 ]

0 голосов
/ 24 июня 2018

Я предполагаю, что вы используете привязку модели формы, поэтому вы можете сделать это:

В вашей игровой модели создайте новый метод только для вас. Привязка модели формы:

class Game extends Model
{
  use FormAccessible;

  public function tags()
  {
     return $this->belongsToMany(Tag::class);
  }

  public function formTagsAttribute()
  {
    return $this->tags()->pluck('id_tag');
  }
}

В вашем контроллере:

public function edit($item)
{        
    $tags  = Tag::pluck('name', 'id_tag');
    return view('megadmin.games.edit', compact('item', 'tags'));
}

На ваш взгляд:

{!! Form::model($game, [$attributes]) !!}
    {!! Form::select('tags', $tags, null, ['class' => 'form-control']) !!}
     .
     .
     .
 {!! Form::close() !!}
0 голосов
/ 23 июня 2018

Контроллер

public function edit($item)
{        
    $tags  = Tag::all();
    $goodTag = $item->tags()->first()->id; 
     //here assuming `$item` is your Game object and 
    //you have ManyToMany relation with tags with `tags` function in game model 
   //lots of assuming

    return view('megadmin.games.edit', compact('item', 'tags', 'goodTag));
}

Вид

 {!! Form::select('tags', array_pluck($tags,'name', 'id_tag'), $goodTag, ['class' => 'form-control'])!!}

Вот форма кода laravel выберите исходный код https://github.com/illuminate/html/blob/master/FormBuilder.php#L393

и array_pluck https://laravel.com/docs/5.6/helpers#method-array-pluck

...