Próbuję powiązać wartość domyślną z tagiem select. (w "widoku edycji").Laravel Form-Model Binding wybierz domyślne wartości
Wiem, że to powinno być łatwe, ale myślę, że czegoś brakuje.
mam:
User.php (mój model użytkownika)
...
public function groups()
{
return $this->belongsToMany('App\Group');
}
public function getGroupListAttribute()
{
return $this->groups->lists('id');
}
...
UserController.php (mój kontroler)
...
public function edit(User $user)
{
$groups = Group::lists('name', 'id');
return view('users.admin.edit', compact('user', 'groups'));
}
...
edit.blade.php (the view)
...
{!! 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
]) !!}
...
Zrobiłem manekina w moim ostrzem i zdobyć poprawne wyniki:
@foreach ($user->group_list as $item)
{{ $item }}
@endforeach
ten zawiera listę wartości, które powinny być zaznaczone domyślnie ..
Próbowałem też umieścić $user->group_list
jako trzeci parametr z Form::select
, ale to nie działało na eterze ...
Nie mam pojęcia, co robię źle .. żadnych wskazówek na ten temat?
edit
kiedy zrobić:
public function getGroupListAttribute()
{
//return $this->groups->lists('id');
return [1,5];
}
Rzecz są prawidłowo wybrany,
teraz wiem, że muszę złapać tablicę z kolekcji .. kopać głębiej. . :)
Znaleziono go
User.php:
...
public function getGroupListAttribute()
{
return $this->groups->lists('id')->toArray();
}
...
to może być łatwiejsze?
Nicea pozdrowienia,
Kristof
jus FYI, można to zrobić bez konieczności deklarowania 'getGroupListAttribute()' 'w sposób User.php' – xhulio
Mam w obliczu podobnego problemu, zamiast korzystania * * zerowej w 3. parametr * Form :: select * w widoku edit.blade, umieść swoje atrybuty $ user. Będzie to coś w stylu '$ user-> groups'. Zrobiłem to z rozwijanymi pojedynczymi elementami, ale musisz przetestować to z wieloma elementami. – alariva