Php Laravel 4名称空间控制器中的路由和名称空间

Php Laravel 4名称空间控制器中的路由和名称空间,php,laravel,laravel-4,laravel-routing,Php,Laravel,Laravel 4,Laravel Routing,我试图在Laravel4中订购我的控制器,并为它们添加一些好的名称空间 所以我想要这样的路线 行政/学者小组 我希望控制器位于名为“admin”的子文件夹中 <?php namespace admin; class ScholarGroupController extends \BaseController { /** * Display a listing of the resource. * GET /scholargroup *

我试图在Laravel4中订购我的控制器,并为它们添加一些好的名称空间

所以我想要这样的路线 行政/学者小组 我希望控制器位于名为“admin”的子文件夹中

    <?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'));
    }
所以我有一个如下的路由文件:

   //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');
    });

  });
});
<?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'));
    }
}
然后我在scholarGroupController中添加了一个名称空间,该名称空间位于名为“admin”的子文件夹中

    <?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'));
    }
因此名称空间影响了我的模型名称空间,如下所示

$scholarGroups = ScholarGroup::paginate(10);

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

您的控制器位于
admin
名称空间中,从那里引用其他类将与该名称空间相关

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

   //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');
    });

  });
});
<?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'));
    }
}