xt-laravel-admin/app/Utils/UrlUtils.php
2018-12-16 11:38:44 +08:00

50 lines
1.6 KiB
PHP

<?php
/**
* User: HUANGXIANG
* Date: 2017-06-26 16:47
*/
namespace App\Utils;
use Request;
class UrlUtils
{
const URL = 'url';
const ACTION = 'action';
const CONTROLLER = 'controller';
const CLASS_NAME = 'class_name';
const CLASS_METHOD = 'class_method';
const METHOD = 'method';
const REAL_METHOD = 'real_method';
public static function toRestfulParams()
{
$params = [];
// 如: App\Http\Controllers\IndexController@getIndex
$action = (Request::route()->getActionName());
// 如: [App\Http\Controllers\IndexController, getIndex]
$tmp = explode("@", $action);
// 如: App\Http\Controllers\IndexController
$controller = $tmp[0];
// 如: getIndex
$classMethod = count($tmp) > 1 ? $tmp[1] : '';
$paths = explode("\\", $controller);
// 如: IndexController
$className = $paths[count($paths) - 1];
// 如: GET | POST | PUT | DELETE , PUT跟DELETE方法可以通过_method参数传
$method = Request::getMethod();
// 如: GET | POST
$realMethod = Request::getRealMethod();
$url = Request::getRequestUri();
$params[static::ACTION] = $action;
$params[static::CONTROLLER] = $controller;
$params[static::CLASS_NAME] = $className;
$params[static::CLASS_METHOD] = $classMethod;
$params[static::METHOD] = $method;
$params[static::REAL_METHOD] = $realMethod;
$params[static::URL] = $url;
return $params;
}
}