php - Laravel 4 身份验证。限制对资源的某些功能的访问,但不是全部

标签 php authentication laravel laravel-4 laravel-routing

我有这个博客资源,它具有常用的 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 在 Controller 的 __construct 方法中指定过滤器。此函数采用第二个参数,让您提供异常(或仅为某些方法启用过滤器)。尝试使用您的原始路由文件并像这样设置您的 Controller :

class PostsController extends BaseController {

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

    // ...

请参阅 Laravel documentation 中的 Controller 过滤器.它的文档并不完整,但您也可以从 here 开始更深入地了解 Laravel 的内部结构。 .

关于php - Laravel 4 身份验证。限制对资源的某些功能的访问,但不是全部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18646482/

相关文章:

amazon-web-services - AWS Cognito 自定义身份验证 - 将元数据发送到挑战 lambda 函数

laravel livewire 提交表单后返回空白页

Windows 身份验证与表单例份验证

laravel - 在页脚中使用过滤器进行列搜索 - 页脚过滤器未显示 - Laravel Datatables Yajrabox

laravel - 无法使用 Swift Mailer 在 Laravel 中发送电子邮件 - 提供商禁用了 proc_open() 功能

javascript - 为什么我的新闻通讯表单在 Amazon CloudFront 上不起作用?

php - Html 页面作为 wordpress 托管中的主页

php - 如何在删除一对一表中的相应行时自动删除表中的行?

php - 获取上次查询中插入的记录/获取更改的行数(MySQL)

php - 在 php 和 Ruby On Rails 应用程序之间传递身份验证