【问题标题】:How to make controllers, models, views outside app folder in Laravel 4?如何在 Laravel 4 中的 app 文件夹之外制作控制器、模型、视图?
【发布时间】:2015-06-25 20:56:24
【问题描述】:

我想做一个这样的结构文件夹:

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-autoloadphp artisan dump-autoload 并创建一个路由:Route::get('/admin', 'AdminController@showWelcome');。但是当我点击http://localhost/laravel/admin 时,我得到了一个错误。谁能告诉我如何解决这个问题?

【问题讨论】:

  • 你得到的错误是什么?
  • 这样做的原因是什么?只是纯粹的兴趣......
  • 浏览器会重定向到localhost/admin。我想要单独的字体末端和后端,我看到这样的开放式购物车结构:D

标签: php laravel-4


【解决方案1】:

像这样在你的 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 Root 命名空间控制器中,您可以像这样调用任何视图

return View::make('admin::NAME_OF_YOUR_VIEW');

或者如果您需要从文件夹中访问视图

return View::make('admin::NAME_OF_YOUR_FOLDER.NAME_OF_YOUR_VIEW');

【讨论】:

    猜你喜欢
    • 2016-12-28
    • 2013-09-24
    • 2019-12-30
    • 2022-01-17
    • 2013-07-23
    • 1970-01-01
    • 2019-12-17
    • 2013-10-16
    • 1970-01-01
    相关资源
    最近更新 更多