gpt4 book ai didi

php - Laravel 5 将 View 和模型保存在资源 View 目录中的单独文件夹中

转载 作者:可可西里 更新时间:2023-11-01 00:42:24 25 4
gpt4 key购买 nike

我已经搜索了很多我的要求,但我没有找到适合我的工作解决方案。我正在使用 laravel 5 创建一个 Web 应用程序,我想将所有与管理员访问相关的 Controller 保留在 Controller 文件夹中的管理子文件夹中。为此,我在 Laravel Controller Subfolder routing 上找到了很好的答案。但现在我关心的是将 View 和模型保存在单独的文件夹中,以便可以轻松管理它们。例如,laravel 5 允许我们以以下格式保留 Controller 的所有 View

  • 资源
    • 观看次数
      • 布局
      • Controller 名称(用于 Controller 特定的 View 文件夹)
        • index.blade.php

现在我想要这样的东西

  • 资源
    • 观看次数
      • 布局
      • 管理员
        • Controller 名称(用于 Controller 特定的 View 文件夹)
          • index.blade.php

我也在寻找相同类型的模型结构,因为 laravel 5 直接将模型提供到 App 文件夹中。我在网上发现,您可以直接在 App 中为模型创建文件夹,您只需要在模型中指定命名空间,如下面的代码用于 App Directory 中的 admin 文件夹。

<?php

namespace App\Models\Admin;

class Users extends Model{
// do some stuff here
}

?>

任何帮助都会让我在 mu 项目上走得更远。

最佳答案

您对应用程序的结构拥有完全的自由。如果您的观点是

resources/views/admin/mycontroller/index.blade.php

并且您的 Controller 被放入app/Http/Controllers/Admin/MyController.php 文件中,然后您可以这样使用 View :

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',

希望对您有所帮助。

关于php - Laravel 5 将 View 和模型保存在资源 View 目录中的单独文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31473978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com