我想制作一个这样的结构文件夹:
root/
admin/
controllers/
AdminController.php
BaseController.php
models/
views/
app/
... etc
我更新了composer.json:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"admin/controllers",
"admin/models",
"admin/views",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
然后运行2个命令:composer dump-autoload
,php artisan dump-autoload
并创建路线:Route::get('/admin', 'AdminController@showWelcome');
。但是当我点击http://localhost/laravel/admin时,我收到错误。任何人都可以告诉我如何解决这个问题?
答案 0 :(得分:4)
在composer.json中注册PSR-4命令,如下所示
"psr-4" : {
"root\\" : "YOUR_ROOT_FOLDER"
}
然后在root / admin / controllers / AdminController.php中你必须命名该类并调用你扩展或使用的任何类
<?php namespace Root\Admin\Controllers;
use BaseController;
class AdminControllers extends BaseController {
}
不要忘记运行composer dump-autoload
编辑:为了能够使用app文件夹以外的其他文件夹中的视图,你必须注册视图,我通常是通过像这样的服务提供商来做的
在root / admin中创建一个名为Providers的文件夹
在其中创建一个文件AdminServiceProvider.php并写入此
<?php namespace Root\Admin\Providers;
use Illuminate\Support\ServiceProvider;
class AdminServiceProvider extends ServiceProvider {
public function register() {
//
}
public function boot() {
\View::addNamespace('admin', __DIR__ . '/../views/');
}
}
现在转到into app/config/app.php
并向下滚动到提供商,在数组结束之前添加此Root\Admin\Providers\AdminServiceProvider
保存并运行composer dump-autoload
现在在int根命名空间控制器中,您可以调用任何类似的视图
return View::make('admin::NAME_OF_YOUR_VIEW');
或者如果您需要从文件夹中访问视图
return View::make('admin::NAME_OF_YOUR_FOLDER.NAME_OF_YOUR_VIEW');