Ich versuche, einen Standardwert für einen ausgewählten Tag zu binden. (in einer "Bearbeitungsansicht").Laravel Form-Modell Binding Multis wählen Standardwerte
Ich weiß, das sollte einfach sein, aber ich denke, ich bin etwas fehlt.
ich habe:
User.php (mein Benutzermodell)
...
public function groups()
{
return $this->belongsToMany('App\Group');
}
public function getGroupListAttribute()
{
return $this->groups->lists('id');
}
...
UserController.php (mein Controller)
...
public function edit(User $user)
{
$groups = Group::lists('name', 'id');
return view('users.admin.edit', compact('user', 'groups'));
}
...
edit.blade.php (die Darstellung)
...
{!! 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
]) !!}
...
Ich habe eine Dummy-Test in meiner Klinge, und haben die richtigen Ergebnisse erhalten:
@foreach ($user->group_list as $item)
{{ $item }}
@endforeach
Dies sind die Werte, die standardmäßig ausgewählt werden sollte ..
Ich habe auch versucht zu setzen $user->group_list
als dritter Parameter aus der Form::select
, aber das hat nicht funktioniert Ether ...
Ich habe keine Ahnung, was ich falsch mache .. irgendwelche Hinweise zu diesem?
bearbeiten
, wenn ich tun:
public function getGroupListAttribute()
{
//return $this->groups->lists('id');
return [1,5];
}
Der Artikel richtig ausgewählt sind,
jetzt weiß ich, dass ich aus der Sammlung eine Reihe greifen müssen .. tiefer zu graben. . :)
gefunden
User.php:
...
public function getGroupListAttribute()
{
return $this->groups->lists('id')->toArray();
}
...
es einfacher sein könnte?
Nizza Grüßen
Kristof
jus FYI, können Sie das tun, ohne die 'getGroupListAttribute()' Methode mit erklären in 'User.php' – xhulio
ich ein ähnliches Problem konfrontiert habe, statt mit * null * im 3. Parameter * Form :: select * in deiner edit.Blade-Ansicht, setze deine $ user-Attribute. Wäre etwas wie '$ user-> groups'. Ich habe dies mit einzelnen Dropdown-Elementen getan, aber Sie müssen dies mit mehreren Elementen testen. – alariva