繁体   English   中英

Laravel 4认证。 限制对资源的某些功能的访问,但不是全部

[英]Laravel 4 authentication. Restrict access to some functions of a resource but not all

我有这个博客资源,它有通常的CRUD方法。(索引,创建,存储,显示,编辑,更新,销毁)。

我的routes.php中有以下路由:

Route::resource('blog', 'PostsController');

但我想限制所有,但索引和显示。 所以我有

Route::get('blog', 'PostsController@index');
Route::group(array('before' => 'auth'), function()
{
    Route::resource('blog', 'PostsController');
});

这对索引很好,但我不知道如何路由show方法? 或者还有另一种方式吗? 我应该单独路由每个URI并将我想要的那些限制在我的受限访问路径中,而不是路由资源吗?

干杯

Laravel有一个功能,允许您使用$this->beforeFilter在控制器的__construct方法中指定过滤器。 此函数采用第二个参数,允许您提供异常(或仅为某些方法启用过滤器)。 尝试使用原始路由文件并按如下方式设置控制器:

class PostsController extends BaseController {

    function __construct() {
        // ...
        $this->beforeFilter('auth', array('except' => array('index', 'show')));
        // ...
    }

    // ...

请参阅Laravel文档中的Controller Filters。 它并没有完全记录在案,但你也可以从这里开始深入了解Laravel的内脏。

在Laravel 5中,您使用中间件功能,如下所示:

$this->middleware('auth', array('except' => array('index', 'show')));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM