/** * Retorna o utltimo id informado. * @return mixed */ public static function getRouteId($name = null) { $route = $name === null ? Route::current() : Route::getRoutes()->getByName($name); $last = Str::last(Str::before($route->uri())); $id_name = Str::startsWith($last, '{') ? str_replace(['{', '}'], '', $last) : sprintf('%s_id', $last); return Route::input($id_name); }
/** * Registrar metodos do modelo. * * @param $uri * @param array $options * @param string $breadcrumbs */ public static function register($uri, array $options = []) { $controller = '\\' . get_called_class(); $methods = ['index', 'create', 'show', 'store', 'update', 'command', 'delete']; $methods = self::getResourceMethods($methods, $options); $id_name = array_key_exists('id_name', $options) ? $options['id_name'] : Str::last($uri) . '_id'; $middlewares = array_key_exists('middlewares', $options) ? $options['middlewares'] : []; $middleware = array_key_exists('middleware', $options) ? (array) $options['middleware'] : []; // Index if (in_array('index', $methods)) { $args = ['uses' => $controller . '@apiIndex']; $middle = array_merge([], $middleware, isset($middlewares['index']) ? $middlewares['index'] : []); if (count($middle) > 0) { $args['middleware'] = $middle; } Route::get($uri, $args); } // Create if (in_array('create', $methods)) { $args = ['uses' => $controller . '@apiCreate']; $middle = array_merge([], $middleware, isset($middlewares['create']) ? $middlewares['create'] : []); if (count($middle) > 0) { $args['middleware'] = $middle; } Route::get($uri . '/create', $args); } // Show if (in_array('show', $methods)) { $args = ['uses' => $controller . '@apiShow']; $middle = array_merge([], $middleware, isset($middlewares['show']) ? $middlewares['show'] : []); if (count($middle) > 0) { $args['middleware'] = $middle; } Route::get($uri . '/{' . $id_name . '}', $args)->where([$id_name => '[0-9]+']); } // Store if (in_array('store', $methods)) { $args = ['uses' => $controller . '@apiStore']; $middle = array_merge([], $middleware, isset($middlewares['store']) ? $middlewares['store'] : []); if (count($middle) > 0) { $args['middleware'] = $middle; } Route::post($uri, $args); } // Update if (in_array('update', $methods)) { $args = ['uses' => $controller . '@apiUpdate']; $middle = array_merge([], $middleware, isset($middlewares['update']) ? $middlewares['update'] : []); if (count($middle) > 0) { $args['middleware'] = $middle; } Route::post($uri . '/{' . $id_name . '}', $args)->where([$id_name => '[0-9]+']); } // Command if (in_array('command', $methods)) { $args = ['uses' => $controller . '@apiCommand']; $middle = array_merge([], $middleware, isset($middlewares['command']) ? $middlewares['command'] : []); if (count($middle) > 0) { $args['middleware'] = $middle; } Route::post($uri . '/{' . $id_name . '}/{command}', $args)->where([$id_name => '[0-9]+']); } // Delete if (in_array('delete', $methods)) { $args = ['uses' => $controller . '@apiDelete']; $middle = array_merge([], $middleware, isset($middlewares['delete']) ? $middlewares['delete'] : []); if (count($middle) > 0) { $args['middleware'] = $middle; } Route::delete($uri . '/{ids}', $args); } }
public function testLast() { $str = Str::last('NetForce/Sistemas/Ultima'); $this->assertEquals('Ultima', $str); }