Целевой класс [App \ Sys \ Http \ Controllers \ Api \ LocationController] не существует - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть настройка Laravel 6 проекта, но по какой-то причине, когда php artisan route: list возвращает «Целевой класс [App \ Sys \ Http \ Controllers \ Api \ LocationController] не существует.» Я новичок в Laravel и я не могу понять, почему контроллер не работает. Кто-нибудь может мне помочь?

Вот мой код:

LocationController. php

<?php
namespace App\Http\Controllers\Api;

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

class LocationController extends Controller
{

    public function index(Request $request)
    {  
        $per_page = $request->per_page ? $request->per_page : 5;
        $sort_by = $request->sort_by;
        $order_by = $request->order_by;
        return response()->json(['locations' => Location::orderBy($sort_by, $order_by)->paginate($per_page)],200);
    }

    public function store(Request $request)
    {
        $location= Location::create([
            'code' =>$request->code,
            'name' =>$request->name,
            'description' =>$request->description
        ]);
        return response()->json(['location'=>$location],200);
    }


    public function show($id)                                                                                                                                                           
    {
        $locations = Location::where('code','LIKE', "%$id%")->orWhere('name','LIKE', "%$id%")->orWhere('description', 'LIKE', "%$id%")->paginate();
        return response()->json(['locations' => $locations],200);
    }



    public function update(Request $request, $id)
    {
       $location = Location::find($id);
       $location->code  = $request->code;
       $location->name  = $request->name;
       $location->description  = $request->description;
       $location->save(); 
       return response()->json(['location'=>$location], 200);
    }

    public function destroy($id)
    {
        $location = Location::where('id', $id)->delete();
        return  response()->json(['location'=>$location],200);
    }

    public function deleteAll(Request $request){
        Location::whereIn('id', $request->locations)->delete();
        return response()->json(['message', 'Records Deleted Successfully'], 200);
    }
}

Мой файл маршрута:

api. php

<?php

use Illuminate\Http\Request;



Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

Route::namespace('App\Sys\Http\Controllers')->group(function () {
    Route::get('/menuslevel0',['uses' => 'MenuController@menus_level_0']);

    Route::resource('locations','Api\LocationController');
});

Ответы [ 2 ]

1 голос
/ 13 апреля 2020

Ваш контроллер находится в App\Http\Controllers\Api, а не в App\Sys\Http\Controllers пространстве имен. Удалите маршрут ресурса местоположений в группе пространств имен App\Sys\Http\Controllers и создайте новый.

Сделайте это

...

Route::namespace('App\Sys\Http\Controllers')->group(function () {
    Route::get('/menuslevel0',['uses' => 'MenuController@menus_level_0']);
});

Route::namespace('App\Http\Controllers')->group(function () {
    Route::resource('locations','Api\LocationController');
});

...
1 голос
/ 13 апреля 2020

Ваш контроллер находится в App\Http\Controllers\Api, и ваш маршрут указывает на App\Sys\Http\Controllers\Api.

Вы должны изменить:

Route::namespace('App\Sys\Http\Controllers')->group(function () {
    // Your routes
});

На:

Route::namespace('App\Http\Controllers')->group(function () {
    // Your routes
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...