如何仅在星期日打开注册表

时间:2019-06-07 08:05:52

标签: laravel

我正在使用Laravel 5.7,我只想在星期日打开特定页面(注册页面)?

4 个答案:

答案 0 :(得分:2)

如果要检查今天是星期天,则需要使用PHP Carbon库(该库默认包含在Laravel中)。

这是一个示例,您将找到解决问题的方法。

就像您有一个控制器名称RegistrationController:-

<?php
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Carbon\Carbon;

class RegistrationController extends Controller {

    public function register()
    {
        $dt = Carbon::now();

        if(!$dt->isSunday()) {
            // here you can add your code if today is not sunday.
            return redirect('home'); 
        }

        // put your code here to open registration form.
        return view('users.registration');
    }
}

如果您想处理DateTime,那么Carbon是一个很好的库。

这里是参考文献click here

答案 1 :(得分:0)

您可以使用刀片检查工作日是否为星期日。

@if(today()->dayOfWeek == 0)
<form>
      ........
</form>
@else
<div>Please comeback on Sunday</div>
@endif

答案 2 :(得分:0)

首先调用碳use Carbon\Carbon; 然后在您的控制器中执行类似的操作

 $dt = Carbon::now();

    if($dt->dayOfWeek == Carbon::SUNDAY)

          {
           dd('sunday');
           return view('user.register');

          }
         else{

            dd('not sunday'); 
           //do not open registration form
    }

如果有帮助,请投票。谢谢

答案 3 :(得分:0)

问题已经回答,但是我认为一种更优雅的方法是针对检查日期的一条或多条特定路线使用中间件(如@Lakhwinder Singh所建议)。

您可以开始将此文件写入app/Http/Middlewares/DisableOnSunday.php

namespace App\Http\Middlewares;
use Carbon\Carbon;

class DisableOnSunday {
    public function handle($request, Closure $next) {
        if(!$dt->isSunday()) {
            // here you can add your code if today is not sunday.
            return redirect('home'); 
        }
        return next();
    }
}

这样,您将来就可以为整个控制器的另一条路由或一组路由添加相同的功能。