我试图在laravel 5.2.*
中添加包,但是包路由返回错误Class FormController does not exist
。
我正在尝试
Package Directory > packages\js\form\src
套餐>提供商
namespace Js\Form;
use Illuminate\Support\ServiceProvider;
class FormServiceProvider extends ServiceProvider
{
public function boot()
{
}
public function register()
{
include __DIR__.'/routes.php';
$this->app->make('Js\Form\FormController');
}
}
套餐>控制器
namespace Js\Form;
use App\Http\Controllers\Controller;
use Carbon\Carbon;
class FormController extends Controller
{
public function index()
{
echo 'test';
}
}
套餐>作曲家
{
"name": "js/form",
"description": "this is form",
"type": "project",
"license": "xyz",
"minimum-stability": "dev",
"require": {}
}
主要作曲家
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/",
"Js\\Form\\": "packages/Js/Form/src"
}
}
套餐>路由
Route::get('/contactus', 'FormController@index');
在config / app.php中
Js\Form\FormServiceProvider::class,
我也执行了此命令composer dump-autoload
然后尝试打开此网址http://localhost/project/public/index.php/contactus
,但显示以下错误。
Class FormController does not exist
任何人都可以指导我在哪里可以修复它的问题。如果有人指导我,我想表示感谢。谢谢
答案 0 :(得分:2)
错误来自这一行:
Route::get('/contactus', 'FormController@index');
默认情况下,路由器会查找相对于App\Http\Controllers
的控制器,但这不是FormController
所在的位置。
要解决此问题,您需要指定FormController
相对到App\Http\Controllers
的位置,或者提供绝对路径。< / p>
例如,如果您的FormController
已命名为App\FormController
,则可以写:
Route::get('/contactus', '\App\FormController@index');
所以,在你的情况下,它将是:
Route::get('/contactus', '\Js\Form\FormController@index');