Класс App \\ Http \\ Controllers \\ Api \\ v1 \\ panel \\ StorageController не существует - PullRequest
0 голосов
/ 01 ноября 2019

У меня проблема с запуском моего проекта в Ubuntu. Я написал проект, и он успешно работает в Windows, но когда я хочу запустить его в Linux, я столкнулся с ошибкой ниже на вкладке сети в "Inspect".

{message: "Class App\Http\Controllers\Api\v1\panel\StorageController does not exist",…}
exception: "ReflectionException"
file: "/home/komail/projects/lara-nakband/vendor/laravel/framework/src/Illuminate/Container/Container.php"
line: 790
message: "Class App\Http\Controllers\Api\v1\panel\StorageController does not exist"

Я использую Laravel 5.8, реагировать JSи axios

я использую эту команду, но она не работает

composer dump-autoload,
php artisan config:clear

в api.php

<?php

use Illuminate\Http\Request;

 Route::prefix('v1')->namespace('Api\v1\panel')->group(function (){
    Route::get('/storage/list' , 'StorageController@list');
    Route::get('/storage/chart' , 'StorageController@chart');
    Route::post('/storage' , 'StorageController@storeNewProduct');
    Route::get('/categories' , 'CategoriesController@index');
});

в storageController

<?php

namespace App\Http\Controllers\Api\v1\Panel;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\Storage;
use Illuminate\Support\Facades\DB;

class StorageController extends Controller
{

    public function list(Request $request)
    {
        dd('ssss');
        $products = Storage::get();
        return $products;
    }

вList.jsx

componentDidMount(){
        window.axios.get('/api/v1/storage/list')
        .then(response => {
            this.setState({
                storage : response.data
            })
        })
        .catch(error => {
            console.log(error);
        })
    }

В то время как код запускается без каких-либо ошибок в Windows, когда я вызываю контроллер в Linux, не появляется никакого правильного ответа. фактически появляется сообщение, объясняющее: контроллер не существует.

1 Ответ

0 голосов
/ 01 ноября 2019

Пространства имен чувствительны к регистру. Измените

Route::prefix('v1')->namespace('Api\v1\panel')->group(function (){

, чтобы сопоставить пространство имен в вашем контроллере с заглавной буквой "P"

Route::prefix('v1')->namespace('Api\v1\Panel')->group(function (){

или наоборот.

Вы можете прочитать о требованиях к пространству имен здесь .

...