api.php 里面是这样的
<?php
use Illuminate\Http\Request;
$api = app('Dingo\Api\Routing\Router');
$api->version('v1', ['middleware' => 'api.throttle', 'limit' => 1000, 'expires' => 5], function ($api) {
$api->group(['namespace' => 'App\Http\Controllers', 'middleware' => ['jwt.api.auth', 'cors']], function ($api) {
$api->post('/auth/login', 'AuthController@postLogin');
$api->group(['middleware' => ['jwt.auth', 'api.logs']], function ($api) {
$api->get('/test', 'TestController@index');
});
});
});
其中 TestController.php 内容如下:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class TestController extends Controller
{
// 获取全部用户
public function index()
{
return \Route::currentRouteAction();
}
}
经测试, 路由/api/test
返回为 null。在 web.php 写路由, 能获取到类似App\Http\Controller\XyzController@index
的值。猜想是 api.php 里用了Dingo\Api\Routing\Router
的原因,那么有什么办法获取到呢?只能放弃使用Dingo\Api\Routing\Router
吗?
1
xuyl OP 已解决:用 app('Dingo\Api\Routing\Router')->currentRouteAction()能获取到和\Route::currentRouteAction()一样的效果,因为 api 里用 dingo/api 的 router 覆盖了 laravel 自身的 router。
|