public function recommendationsUpload() { $recommendation = new Recommendation(); $active_principle = new ActivePrinciple(); $columns = $recommendation->columns(); $foreign_key = array_pop($columns); // retrieve FK column $input = Input::All(); $header = array_shift($input); // retrieve header row if (!$this->checkHeader($header, $columns)) { return Response::json(array("success" => false, "info" => "Cabeceras del Excel no coincide con la base de datos.\n No se procederá a modificar la base de datos.")); } DB::table($recommendation->getTableName())->delete(); try { $errors = ""; foreach ($input as $row) { $row = $this->readRow($row, $header); $recommendation = new Recommendation($row); $active_principle_found = DB::table($active_principle->getTableName())->select("id", "principio_activo")->where("principio_activo", "=", $recommendation->principio_activo)->first(); if ($active_principle_found != NULL) { $recommendation->active_principle_id = $active_principle_found->id; $recommendation->save(); } else { $errors .= "\nRecomendación para un principio activo: " . $active_principle->principio_activo . " inexistente"; } } } catch (Exception $ex) { return Response::json(array("success" => false, "info" => "Ha habido algún problema cargando el Excel en la base de datos." . "\n" . $ex->getMessage())); } return Response::json(array("success" => true, "info" => "Se ha cargado el excel en la base de datos correctamente.", "errors" => $errors)); }