我已经为我的要求搜索了很多,但我没有找到适合我的工作解决方案。我正在使用laravel 5创建一个web应用程序,在那里我想保持所有控制器这是相关的管理访问到控制器文件夹中的管理子文件夹。为此,我在Laravel控制器子文件夹路由上找到了很好的答案,但现在我关心的是将视图和模型保存在单独的文件夹中,以便它们可以轻松管理。例如,laravel 5允许我们将控制器的所有视图保存在以下格式
- 资源
- 视图
- controllername(用于特定于控制器的视图文件夹)
- index.blade.php
- controllername(用于特定于控制器的视图文件夹)
- 视图
现在我想要这样写
- 资源
- 视图
- 管理
- controllername(用于特定于控制器的视图文件夹)
- index.blade.php
- controllername(用于特定于控制器的视图文件夹)
- 管理
- 视图
我也在寻找与laravel 5相同的模型结构,将模型直接提供到App文件夹中。我在网上找到了一个地方,你可以直接在App中为模型创建文件夹,你只需要在模型中指定命名空间,就像下面的代码在App目录中的管理文件夹。
<?php
namespace App'Models'Admin;
class Users extends Model{
// do some stuff here
}
?>
任何帮助都将使我的项目走得更远。
您对应用程序的结构有完全的自由。如果你的视图是
resources/views/admin/mycontroller/index.blade.php
和您的控制器放在app/Http/Controllers/Admin/MyController.php
文件中,然后您可以这样使用视图:
namespace App'Http'Controllers'Admin;
use App'Http'Controllers'Controller;
class MyController extends Controller {
public function index() {
return view('admin.controller.index');
}
}
关于你的模型,Laravel是灵活的,使用PSR-4自动加载,所以你的命名空间结构必须匹配目录结构。如果您想将Users
模型放在App'Models'Admin
名称空间中,那么只需创建以下文件夹结构:
app/
Models/
Admin/
Users.php
...
resources/
vendor/
在Users.php
文件中,放入模型类:
<?php
namespace App'Models'Admin;
use Illuminate'Database'Eloquent'Model;
class Users extends Model
{
// ...
}
注意Users
的命名空间匹配目录结构:
-
App
被映射到app/
目录 -
App'Models
映射到app/Models
-
App'Models'Admin
映射到app/Models/Admin
最后将
App'Models'Admin'Users
映射到app/Models/Admin/Users.php
如果你的Users
类打算替换标准的Laravel User
Eloquent模型,那么你还必须更改config/auth.php
配置文件并替换
'model' => 'App'User',
'model' => 'App'Models'Admin'Users',
希望这对你有帮助。