我正在创建一个基本代码,最终将为多个站点工作。我成功地将其拆分以支持多个"视图"。文件夹,但我不知道如何做同样的控制器。这是一般的结构:
/app/Http/Controllers <--- standard controller folder
/resources/view <--- standard view folders
这是我想要的结构:
/sites/ASITE/view <--- this I got working
/sites/ASITE/Controllers <--- this I don't know how to get working
如果我在/app/Http/Controllers中创建一个控制器,并创建一个路由:
Route::get('/test', 'AppHttpControllersTestController@test')->name('Test');
然后它工作良好,如果我调用/test。但是如果我把它移到"/sites/ASITE/Controllers"并将命名空间更改为:
sitesASITEControllers;
制作路线:
Route::get('/test', 'sitesASITETestController@test')->name('Test');
然后我得到错误"目标类[sitesASITETestController]不存在">
关于如何让控制器从另一个文件夹工作的任何想法?
AppHttpControllersTestController
没有告诉LaravelTestController.php
存在于App/Http/Controllers
中。说明TestController
类在名称空间AppHttpControllers
中。
在TestController.php
:
namespace AppHttpControllers;
如果你想改变命名空间,你需要在这里做:
namespace sitesASITE;
App
名称空间可用,而sites
名称空间不可用的原因是您没有在composer.json
中定义sites
名称空间:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\": "app/",
"sites\": "sites/" <<< Add this line here
}
},