Ich habe User
Role
Modelle in einer Viele-zu-viele-Beziehung definiert. Wenn der Benutzer die Erstellung habe ich eine mehrere Auswahlfeld auf Rollen für bestimmte Benutzer wählen:Laravel erhalten mehrere Auswahl aus Modell
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<div class="form-group">
<label for="roles">Roles</label>
{!! Form::select('roles[]',$roles, null,['class' => 'form-control selectpicker','multiple' => 'true']) !!}
</div>
</div>
Dies ist eine Form, die in den beiden geteilt wird Erstellen und Bearbeiten von Methoden, aber für die Bearbeitung ist es so:
{!! Form::model($patient, ['route' => ['patients.update', $patient->id], 'method' => 'PUT']) !!}
@include('patients.partials.form')
{!! Form::close()!!}
Wenn ich versuche, Benutzer mit Rollen zu bearbeiten, erhalten keine Rollen ausgewählt ... dies ist der Controller
public function edit(User $user)
{
$clinics = Clinic::pluck('name', 'id');
$roles = Role::pluck('display_name', 'id');
$states = State::pluck('name', 'id');
$cities = City::pluck('name', 'id');
return view('users.edit', compact('user', 'clinics', 'states', 'cities', 'roles'));
}
EDIT:
Ich behandle Update wie folgt aus:
public function update(Request $request, User $user)
{
if ($request->has('password'))
$user->update($request->except('password_confirmation'));
else
$user->update($request->except('password', 'password_confirmation'));
$user->roles()->sync($request->roles);
return redirect('users')->with('status', 'User Updated!');
}
Teil des Antrags dump:
"roles": [
"1",
"4"
],
"first_name": "xy",
"last_name": "yx",
Können Sie die Anfrageeingaben beim Senden des Formulars posten? und wie Sie mit dem Update umgehen. – Sandeesh
Überprüfen Sie die Frage jetzt. Danke – Norgul
Ihr Code scheint gut, ich sehe keine Probleme auf den ersten Blick. Können Sie "$ user-> roles" vor und nach dem Ausführen der Synchronisierung ablegen? Überprüfen Sie auch, was '$ user-> roles() -> sync ($ request-> roles);' zurückgibt. – Sandeesh