php - Laravel 4 命名空间 Controller 中的路由和命名空间

标签 php laravel laravel-4 laravel-routing

我试图在 Laravel 4 中订购我的 Controller 并为它们添加一些不错的命名空间

所以我想要这样的路线 管理员/学者组 我希望 Controller 位于名为“admin”的子文件夹中

所以我有一个这样的路由文件:

   //Admin Routes
Route::group(array('namespace' => 'admin'), function()
{
  Route::group(array('prefix' => 'admin'), function()
  {
    # Scholar Groups Controller
    Route::group(['before' => 'auth|adminGroup'], function()
    {
      Route::resource('scholar-groups', 'ScholarGroupController');
    });

  });
});

然后我在名为“admin”的子文件夹中的 scholarGroupController 中添加了一个命名空间

    <?php namespace admin;
class ScholarGroupController extends \BaseController {

    /**
     * Display a listing of the resource.
     * GET /scholargroup
     *
     * @return Response
     */
    public function index()
    {
        $scholarGroups = ScholarGroup::paginate(10);
        return View::make('scholar_groups.index',compact('scholarGroups'));
    }

但每当我尝试访问 Controller 中的索引操作时,我都会收到此错误。

Class 'admin\ScholarGroup' not found

因此命名空间正在影响下一行中的模型命名空间

$scholarGroups = ScholarGroup::paginate(10);

如何避免命名空间影响此模型类命名空间?

最佳答案

您的 Controller 位于 admin 命名空间中,从那里引用其他类将相对于该命名空间。

因此您需要使用前面的反斜杠来引用您的模型(就像您对 BaseController 所做的那样),如下所示:

<?php namespace admin;

class ScholarGroupController extends \BaseController
{
    public function index()
    {
        $scholarGroups = \ScholarGroup::paginate(10);

        return View::make('scholar_groups.index',compact('scholarGroups'));
    }
}

或者像这样在类声明之上导入它:

<?php namespace admin;

use ScholarGroup;

class ScholarGroupController extends \BaseController
{
    public function index()
    {
        $scholarGroups = ScholarGroup::paginate(10);

        return View::make('scholar_groups.index',compact('scholarGroups'));
    }
}

此外,您不需要执行两次 Route::group。你可以这样做:

Route::group(array('prefix' => 'admin', 'namespace' => 'admin'), function() {
    // . . .
});

关于php - Laravel 4 命名空间 Controller 中的路由和命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29884294/

相关文章:

php - 使用 HHVM 和 Laravel 来自 SQS 的空消息

php - 有条件地使用逆关系过滤数据透视表 - Laravel 5

javascript - 获取没有输入名称的发布数据

php - 在 PHP 中回显 $_SERVER ['DOCUMENT_ROOT' ] 的结束部分或最后一个文件夹

jquery - 将 ajax 响应绑定(bind)到 vue.js(单个页面上的多个请求)

php - Laravel 4 - 按 MySQL YEAR() 分组和搜索

javascript - 如何将 php 变量添加到 javascript 中?

php - Laravel - 如何在没有小时的情况下获取列 created_at

laravel - 在 laravel 查询构建器上添加过滤功能

php - Laravel 迁移的好处