Я пытаюсь привязать значение по умолчанию к тегу select. (в "виде редактирования" ).
Я знаю, что это должно быть легко, но я думаю, что что-то не хватает.
У меня есть:
User.php (моя модель пользователя)
...
public function groups()
{
return $this->belongsToMany('App\Group');
}
public function getGroupListAttribute()
{
return $this->groups->lists('id');
}
...
UserController.php (мой контроллер)
...
public function edit(User $user)
{
$groups = Group::lists('name', 'id');
return view('users.admin.edit', compact('user', 'groups'));
}
...
edit.blade.php (вид)
...
{!! Form::model($user, ['method' => 'PATCH', 'action' => ['[email protected]', $user->id]]) !!}
...
...
// the form should be binded by the attribute 'group_list' created
// at the second block of 'User.php'
// performing a $user->group_list gets me the correct values
{!! Form::select('group_list[]', $groups, null, [
'class' => 'form-control',
'id' => 'grouplist',
'multiple' => true
]) !!}
...
Я сделал фиктивный тест в своем клипе и получил правильные результаты:
@foreach ($user->group_list as $item)
{{ $item }}
@endforeach
Здесь перечислены значения, которые должны быть выбраны по умолчанию.
Я также попытался поместить $user->group_list
в качестве третьего параметра из Form::select
, но это не работало в эфире...
Я не знаю, что я делаю неправильно.. какие-либо намеки на этот?
изменить
когда я это сделаю:
public function getGroupListAttribute()
{
//return $this->groups->lists('id');
return [1,5];
}
Элемент правильно выбран,
теперь я знаю, что мне нужно захватить массив из коллекции. копать глубже..:)
нашел его
User.php:
...
public function getGroupListAttribute()
{
return $this->groups->lists('id')->toArray();
}
...
может быть проще?
С уважением,
Кристоф