Как вызвать Api Controller из API-маршрута в laravel? - PullRequest
2 голосов
/ 19 апреля 2019

Я установил аутентификацию jwt и создал контроллер, т.е. AuthController Inside Api Directory. Я определил в маршрутах / api.php как:

Route::group(['prefix'=>'v1', 'namespace' => 'Api'],function($app){
    Route::get('/test', function(){
        return "HEllo";
    });
    Route::get('test',              'AuthController@test');
});

Когда я нажимаю URL-адрес как: http://localhost:8000/api/v1/test, я получаю сообщение об ошибке, так как Class 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'));

Ответы [ 4 ]

2 голосов
/ 19 апреля 2019

Раскомментируйте строку ->namespace($this->namespace).

1 голос
/ 19 апреля 2019

В своем выражении Route::group вы определили пространство имен группы маршрутов как 'Api'.

Но AuthController находится в пространстве имен App\Http\Controllers, а не в пространстве имен Api.

Чтобы исправить это, добавьте пространство имен Api в App\Http\Controllers и отошлите его туда ( рекомендуется создать каталог в каталоге Controllers с именем Api, чтобы структура каталога соответствовала пространству имен ):

AuthController.php

namespace App\Http\Controllers\Api;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class AuthController extends Controller
{
    public function test() {
        return "Hello";
    }
}
0 голосов
/ 19 апреля 2019

Проверьте пространство имен вашего контроллера

<?php

 namespace App\Http\Controllers\Api;

 use Illuminate\Http\Request;
 use App\Http\Controllers\Controller;

 class AuthController extends Controller
 {


     public function test() {
          return "Hello";
     }
 }
0 голосов
/ 19 апреля 2019

Измените определение пространства имен контроллера Auth на:

namespace App\Http\Controllers\Api;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...