Ich habe ein Problem. Ich habe das Dropdown-Formular hinzugefügt, aber Er zeigt nur die Liste an. Wenn ich auf "Senden" klicke, ändert sich meine Datenbank nicht. Form::text
ändern Sie meine Datenbank, aber Form::select
macht keine Änderungen. Kann ich ein Problem in der Steuerung haben?Laravel 5. Dropdown ändert nicht die Datenbank
-Controller
public function edit($id)
{
$user = User::with('roles')->findOrFail($id);
$userRole = Role::pluck('name', 'id');
return view('pages.edit', compact('user', 'userRole'));
}
public function update($id, Request $request)
{
$user = User::with('roles')->findOrFail($id);
$user->update($request->all());
return redirect('users');
}
Ansicht
{!! Form::model($user, ['method' => 'PATCH', 'action'=>['[email protected]', $user->id]]) !!}
<div class="form-group">
<div class="form-group col-md-offset-3 col-md-6">
{!! Form::label('roles','Roles: ') !!}
{!! Form::select('roles',$userRole, null,['class'=>'form-control']) !!}
</div>
<div class="form-group col-md-offset-3 col-md-6">
{!! Form::submit('Send', ['class'=>'btn btn-success form-control']) !!}
</div>
</div>
{!! Form::close() !!}
Hat Rolle
public function roles()
{
return $this->belongsToMany(Role::class);
}
public function assignRole($role)
{
return $this->roles()->save(
Role::whereName($role)->firstOrFail()
);
}
Thx für die Hilfe.
Ich denke, 'Rollen' ist eine Beziehung in Ihrem Modell? Sie müssen eine separate Abfrage verwenden, um diese Beziehung zu erstellen. Bitte zeigen Sie Ihr 'User'- und' Role'-Modell. – Jerodev
Setzen Sie 'print_r ($ request-> all()); exit();' in Ihr 'update()' und lassen Sie mich die Ausgabe wissen. –
@Jerodev I aktualisiert Post – funfelfonfafis