我已经安装了jwt身份验证并创建了一个控制器,即Api目录中的AuthController。我已经将routes / api.php中的定义为:
Route::group(['prefix'=>'v1', 'namespace' => 'Api'],function($app){
Route::get('/test', function(){
return "HEllo";
});
Route::get('test', 'AuthController@test');
});
当我以http://localhost:8000/api/v1/test的形式访问网址时,由于类Cotrollers \ Api \ AuthController不存在,我遇到了错误。
AuthController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class AuthController extends Controller
{
public function test() {
return "Hello";
}
}
RouteServiceProvider.php:
Route::prefix('api')
// ->middleware('api')
// ->namespace($this->namespace) ->group(base_path('routes/api.php'));
答案 0 :(得分:2)
取消注释->namespace($this->namespace)
行。
答案 1 :(得分:1)
在您的Route::group
语句中,您已将路由组的命名空间定义为'Api'
。
但是AuthController驻留在App\Http\Controllers
命名空间中,而不是Api
命名空间中。
要解决此问题,请在App\Http\Controllers
中添加一个Api命名空间并在其中引用(最佳做法是在Controllers目录中创建一个名为Api的目录,以便目录结构遵循该命名空间):
namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class AuthController extends Controller
{
public function test() {
return "Hello";
}
}
答案 2 :(得分:0)
将Auth控制器名称空间定义更改为:
namespace App\Http\Controllers\Api;
答案 3 :(得分:0)
<?php
namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class AuthController extends Controller
{
public function test() {
return "Hello";
}
}
答案 4 :(得分:0)
您需要在此处进行更改,
runtime: nodejs12
handlers:
- url: /
secure: always
static_files: celbux-frontend-ng/index.html
upload: celbux-frontend-ng/index.html
# Routing rules for resources, css, js, images etc. Any file with format filename.ext
- url: /(.*\.(.+))$
secure: always
static_files: celbux-frontend-ng/\1
upload: celbux-frontend-ng/(.*\.(.+))$
# Routing rule for Angular Routing
- url: /(.*)
secure: always
static_files: celbux-frontend-ng/index.html
upload: celbux-frontend-ng/index.html
在RouteServiceProvider.php中添加
App\Providers\RouteServiceProvider.php
赞:
protected $namespace = 'Path\To\Controllers';
就这样! 请告诉我是否可以解决您的问题。