1

如何在 Laravel 4(Restfull 控制器)中创建管理员特定的路由:

/admin/users        (get - /admin/users/index)
/admin/users/create (get)
/admin/users/store  (post)

我想知道:

  • 什么文件和我需要在哪里创建它们
  • 我需要如何创建路线
4

4 回答 4

10

Laravel 4您现在可以使用prefix

Route::group(['prefix' => 'admin'], function() {

    Route::get('/', 'AdminController@home');

    Route::get('posts', 'AdminController@showPosts');

    Route::get('another', function() {
        return 'Another routing';
    });

    Route::get('foo', function() {
        return Response::make('BARRRRR', 200);
    });

    Route::get('bazz', function() {
        return View::make('bazztemplate');
    });

});
于 2013-06-24T21:28:23.573 回答
5

对于您的子文件夹,正如我在这里回答的"route-to-controller-in-subfolder-not-working-in-laravel-4",在这个 laravel 4 beta 中似乎没有“友好”的解决方案。

@Aran,如果你让它工作正常,请添加你的控制器、路由和 composer.json 文件的代码示例:

Route::resource('admin/users', 'admin.Users');

或者

Route::resource('admin', 'admin.Users');

谢谢

于 2013-01-25T10:46:20.443 回答
3

您可以使用的真正有用的工具是artisanCLI。

使用它,您将能够生成所需的函数文件,其中包含使其成为 RESTful 所需的所有路由。

php artisan controller:make users

将为您生成函数文件。然后在您的 routes.php 文件中,您可以简单地添加

Route::resource('users', 'Users');

这将设置所有必要的路线。

有关这方面的更多信息,您应该阅读文档。

http://four.laravel.com/docs/routing#resource-controllers

http://four.laravel.com/docs/artisan

编辑:

为了使这个管理员特定,简单地改变如下代码并将控制器移动到控制器文件夹内的管理员文件夹。

Route::resource('admin/users', 'admin.Users');

第一个参数是路由,第二个是控制器文件名/文件夹。

在 Laravel 中,如果你在文件夹中放置了一个控制器,为了在路由或 URL 中指定它,你可以使用一个点来表示文件夹。

然后,您可以对此进行扩展并使用路由过滤器添加身份验证,特别是在下面页面上找到的“基于模式的过滤器”的代码。

http://four.laravel.com/docs/routing#route-filters

于 2013-01-22T16:35:23.580 回答
0

Laravel 4 - 轻松添加管理控制器

这让我发疯了很长时间,但我解决了。

路由.php

Route::resource('admin', 'Admin_HomeController@showIndex');

/controllers/Admin/HomeController.php

请注意文件夹名称 Admin 必须大写“A”

<?php

class Admin_HomeController extends Controller {
    public function showIndex() {
        return 'Yes it works!';
    }   
}

或者,您可以使用 group 方法

Route::group(array('prefix' => 'admin'), function() {
    Route::get('/', 'Admin_HomeController@showIndex');
});

谢谢丹尼尔

于 2013-06-28T14:20:18.107 回答