public function options() { $user = \Auth::user(); //obtengo los id de los modulos del perfil del usuario $modules = explode(',', $user->type->activated_modules); //se guardan en un array de string //obtengo los id de submodulos del perfil del usuario $submodules = explode(',', $user->type->activated_submodules); //recorro el array de string modules foreach ($modules as $value) { //obtengo el modulo (value es el id) $module = Module::find($value); //recorro los submodules para guardarlos en un array foreach ($submodules as $id) { $submodule = Submodule::find($id); //tambien se puede usar $submodule->module->id por la relacion de tablas if ($module->id == $submodule->module_id) { $submoduleArray[] = ['description' => $submodule->description, 'url' => $submodule->url]; } } //se rellena el array final $options[] = ['description' => $module->description, 'icon' => $module->icon, 'submodule' => $submoduleArray]; $submoduleArray = []; } return $options; }
public function get() { //obtengo todos los modulos $modules = Module::get(); //recorro el array de objetos modules foreach ($modules as $module) { //obtengo los submodulos (en un array de submodulos) $submodules = $module->submodules; //recorro los submodules para obtener cada submodulo foreach ($submodules as $submodule) { $submoduleArray[] = ['id' => $submodule->id, 'description' => $submodule->description]; } $options[] = ['description' => $module->description, 'submodule' => $submoduleArray]; $submoduleArray = []; } return $options; }