3

我基本上想要的是用户权限。

我的数据库中有一个名为“帐户”的表。有一个名为“group_id”的列。我想在'group_id' = 3时设置它,然后用户是管理员。然后他可以查看特殊的站点、按钮和类似的东西。我试图实现类似的东西:

public function ($roleName) {
    $role = $this->roles;

    if ($role->name == $roleName) {
        return true;
    }

    return false;
}

另外,我不知道需要什么以及如何使用该模型,是否需要一个新模型之类的东西。

4

3 回答 3

6

老帖子,但也许有人会觉得这很有用

如果用户是管理员,则向您的 User 模型添加一个返回 true 的方法。在我们这里的例子中,它只是“我们的 group_id 是否等于 3?”

// models/User.php
class User extends Eloquent 
{
    ... 
    public function isAdmin()
    {
        return $this->group_id == 3;
    }

}

接下来添加一个可以用来保护路由的过滤器

// filters.php
Route::filter('admin', function($route, $request)
{
    if ( ! Auth::user()->isAdmin())
    {
        return App::abort(401, 'You are not authorized.');
    }
});

最后使用过滤器保护一组路由。在这个简化的情况下,只有管理员用户可以访问/admin

// routes.php
Route::group(array('before' => array('auth|admin')), function()
{
    Route::get('/admin', function()
    {
        return Response::make("You're an admin!");
    }
});

基于这篇文章: http: //laravelsnippets.com/snippets/admin-route-filter

于 2014-12-04T19:42:33.577 回答
4

我建议Laravel 4 的权威

于 2013-07-29T09:07:52.597 回答
1

我个人使用验证包进行用户管理。

于 2013-07-29T03:35:59.713 回答