Home Articles

在命名空间中定义控制器仍然在laravel 5.5中发生Class App \ Http \ Controllers错误

Asked
Viewed 1942 times
0

我在laravel 5.5工作 . 我创建了一个名为 Abc 的控制器文件夹,并在其中创建了一个名为 abc.php 的控制器文件,在此文件中我编写了代码:

namespace App\Http\Controllers\Abc;

use App\Http\Controllers\Controller;

//use Illuminate\Support\Facades\DB;

class abcController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function NewPromotion()
    {
        return view('new-promotion');
    }
}

在web.php文件下的Route文件夹中,我调用其视图文件,如: - Route :: get('/ new-promotion','Abc \ abcController @ NewPromotion');

尽管在命名空间中定义,我仍然会收到错误,即

“ReflectionException(-1)类App \ Http \ Controllers \ Abc \ abcController不存在” .

可能的问题是什么?

error message appearing in front end

2 Answers

  • 0

    您应该确保您的文件位于 app/Http/Controllers/Abc 目录中,并且名称为 abcController.php (区分大小写) .

    同样按照惯例,类名以大字母开头,因此您应该将控制器命名为 AbcController ,并将此文件命名为 AbcController.php (并且还要更新路由文件以使用此控制器名称的有效大小写) .

  • 0

    创建控制器的好方法是使用cmd(你必须在项目目录中)

    php artisan make:controller "Abc\abcController"
    

Related