In mijn Laravel project, heb ik in het admin gedeelte uiteraard ook een user 'module' zitten, in zijn eigen (resource) controller. Bij de delete functie gaat er naar mijn idee iets niet goed, maar kan niet vinden wat er is.
Voor de user model, heb ik een relatie gemaakt, die de roles van de user ophaalt. Bij het verwijderen van een user, moeten deze roles ook verwijderd (opgeschoont) worden. Nu kan ik er wel omheen gaan werken, maar lijkt mij het mooiste om dat te doen met de standaard functies die er al zijn. Mijn delete functie is als volgt:
Door de documentatie en vragen op o.a. Stackoverflow begrijp ik dat dat wel het geval zou moeten zijn, maar is dat bij mij in deze dus niet. Ik gebruik de nieuwste versie van Laravel 5.2 (gisteren met composer update gedraaid).
Voor de user model, heb ik een relatie gemaakt, die de roles van de user ophaalt. Bij het verwijderen van een user, moeten deze roles ook verwijderd (opgeschoont) worden. Nu kan ik er wel omheen gaan werken, maar lijkt mij het mooiste om dat te doen met de standaard functies die er al zijn. Mijn delete functie is als volgt:
PHP:
In het user model is de roles relatie als volgt aangelegd1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| public function destroy($id) { if($id == Auth::user()->id) { Flash::error('Je kunt jezelf niet verwijderen!'); return redirect()->route('admin.user.index'); } else { $user = User::findOrFail($id); // Roles verwijderen bij de user if(count($user->roles()) > 0) { $user->roles()->detach(); } // User zelf verwijderen $user->delete(); } } |
PHP:
Volgens de documentatie hoort de detach() functie namelijk bij de belongsToMany method van Eloquent en zou het dus moeten werken. Ik krijg echter als error dat de method detach() niet bestaat?1
2
3
| public function roles() { return $this->belongsToMany('App\Role', 'role_users'); } |
Door de documentatie en vragen op o.a. Stackoverflow begrijp ik dat dat wel het geval zou moeten zijn, maar is dat bij mij in deze dus niet. Ik gebruik de nieuwste versie van Laravel 5.2 (gisteren met composer update gedraaid).
[ Voor 4% gewijzigd door CH4OS op 10-06-2016 10:53 ]