为了账号安全,请及时绑定邮箱和手机立即绑定

laravel - 如何按小时锁定页面

laravel - 如何按小时锁定页面

PHP
互换的青春 2022-10-14 16:13:43
我需要阻止用户从上午 9 点到下午 6 点访问某些页面。那么,实现这一目标的最佳方法是什么?我应该创建一个中间件吗?还是内核条件?或者向控制器添加条件?
查看完整描述

3 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

中间件绝对是实现此类功能的合适场所。


完整的文档在这里。


快速版本:


php artisan make:middleware TimeRestrictedMiddleware- 这将在 app/Http/Middleware 中创建一个名为TimeRestrictedMiddleware.php

在该文件的handle()方法中编写一些代码来检查您的时间限制并返回视图/响应以拒绝用户。

    public function handle($request, Closure $next)

    {

        if (Carbon::now()->format('H') >= 9 && Carbon::now()->format('H') <= 18) {

            //

            return response(view('some-view-to-deny'));

        }

        // default behaviour  

        return $next($request);

    }

添加对新中间件的引用 -$routeMiddleware内部app/Http/Kernel.php

然后用中间件包装你的路线。

Route::group(['middleware' => ['time-restricted']], function () {

    // all routes that need time-restrictions

});


查看完整回答
反对 回复 2022-10-14
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

我会做这样的事情:


public function returnViewName(){

   if(Carbon::now()->format('H') >= 9 && Carbon::now()->format('H') =< 18){

      return;

   } else {

      return view('viewName');

   }

}

代码未经测试,但应该能让你到达那里。


查看完整回答
反对 回复 2022-10-14
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

这会起作用:


public function showPage(): View

{

    $hour = Carbon::now()->format('H');

    $template = $hour > 8 && $hour < 19 ? 'error-page' : 'actual-page';

    return view($template);

}


查看完整回答
反对 回复 2022-10-14
  • 3 回答
  • 0 关注
  • 165 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号