我已经搜索了很多我的要求,但我找不到适合我的解决方案.我正在使用laravel 5创建一个Web应用程序,我想将所有与管理员访问相关的控制器保存到controllers文件夹中的admin子文件夹中.为此,我在Laravel Controller子文件夹路由中找到了很好的答案,但现在我关注的是将视图和模型保存在单独的文件夹中,以便可以毫不费力地管理它们.例如,laravel 5允许我们以下面的格式保留控制器的所有视图
现在我想要这样的东西
我也在为模型看同样的结构,因为laravel 5直接将模型提供到App文件夹中.我已经在网上发现你可以直接在App中为模型创建文件夹,你只需要在模型中指定命名空间,如App Directory中admin文件夹的代码.
<?php
namespace App\Models\Admin;
class Users extends Model{
// do some stuff here
}
?>
Run Code Online (Sandbox Code Playgroud)
任何帮助都可以让我进一步了解mu项目.
您可以完全自由地使用应用程序的结构.如果你的观点是
resources/views/admin/mycontroller/index.blade.php
Run Code Online (Sandbox Code Playgroud)
并且您的控制器被放入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');
}
}
Run Code Online (Sandbox Code Playgroud)
关于您的模型,Laravel再次灵活并使用PSR-4自动加载,因此您的命名空间结构必须与目录结构相匹配.如果要将Users模型放在App\Models\Admin命名空间中,则只需创建此文件夹结构:
app/
Models/
Admin/
Users.php
...
resources/
vendor/
Run Code Online (Sandbox Code Playgroud)
在Users.php文件中,放置您的模型类:
<?php
namespace App\Models\Admin;
use Illuminate\Database\Eloquent\Model;
class Users extends Model
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
请注意,命名空间Users与目录结构匹配:
App映射到app/目录App\Models 被映射到 app/ModelsApp\Models\Admin 被映射到 app/Models/AdminApp\Models\Admin\Users映射到app/Models/Admin/Users.php如果您的Users类旨在替换标准的Laravel Eloquent User模型,那么您还必须更改config/auth.php配置文件并替换该行
'model' => 'App\User',
Run Code Online (Sandbox Code Playgroud)
同
'model' => 'App\Models\Admin\Users',
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助.
| 归档时间: |
|
| 查看次数: |
3602 次 |
| 最近记录: |