问题
I have created a simple controller and define a function. But when i run this it returns an error that controller does not exist.
In my web.php assign a route.
<?php
Route::get('/', function () { return view('front.welcome'); });
Route::get('plan','PlanController@PlanActivity')->name('plan');
On otherside in my controller my code:
<?php
namespace App\Http\Controllers\Front;
use App\Http\Controllers\Controller as BaseController;
use Illuminate\Http\Request;
class PlanController extends Controller {
public function PlanActivity()
{
dd("hello");
//return view('admin.index');
}
}
This controller created on App\Http\Controllers\Front - on front folder
Error :
ReflectionException (-1) Class App\Http\Controllers\PlanController does not exist
回答1:
Add Front
part to:
Route::get('plan', 'Front\PlanController@PlanActivity')->name('plan');
Also, change the top of the controller to:
namespace App\Http\Controllers\Front;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
And run composer du
.
From the docs:
By default, the
RouteServiceProvider
includes your route files within a namespace group, allowing you to register controller routes without specifying the fullApp\Http\Controllers
namespace prefix. So, you only need to specify the portion of the namespace that comes after the baseApp\Http\Controllers
namespace.
回答2:
First when defining route, make sure to use the correct path for the controller. the correct is:
Route::get('plan','Front/PlanController@PlanActivity')->name('plan');
Second you have imported Controller
Class as BaseController
. so you should extends BaseController
not Controller
:
class PlanController extends BaseController {
public function PlanActivity()
{
dd("hello");
//return view('admin.index');
}
}
来源:https://stackoverflow.com/questions/48617556/laravel-class-controller-does-not-exist