I构建设置页面,管理员可以在其中更改网站中的一些设置我想添加一个选项来停止注册
例如:
如果注册被禁用,并且用户试图转到注册页面,他将自动重定向到404
设置表:
名称:选项或设置的名称
值:
我已经在设置表"stop_register"中添加了一列
我想要的是当这个列的值为0时,注册关闭,当它为1时,注册打开
您可以使用middleware
来完成此任务,
要创建新的中间件,请使用make:middleware Artisan命令:
php artisan make:middleware CheckRegistration
上面的命令将在app/Http/Middleware目录中创建CheckRegistration
类。
在这个中间件中,您可以根据value
应用您的逻辑来允许或不允许注册路由
中间件:
<?php
namespace AppHttpMiddleware;
use Closure;
use App/Registration;
class CheckRegistration
{
/**
* Handle an incoming request.
*
* @param IlluminateHttpRequest $request
* @param Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$value = Registration::select("value"); // assuming value is either 0 or 1
if ($value == 0) {
return redirect('404'); // view with 404 display error
}
return $next($request);
}
}
与上面的代码一样,如果值为0,它将重定向到404错误视图,否则,请求将进一步传递到应用程序中。
未测试代码。
此处参考
尝试这个版本:
public function Register()
{
$stop_reg = DB::table('settingstable')->value('stop_register');
if( $stop_reg==1 )
{
return view('register_page');
}
elseif( $stop_reg==0 )
{
return view('404_page');
}
}
在您的刀片上尝试类似的操作。尽管我还没有测试代码。
@php $stop_reg = DB::table('settingstable')->value('stop_register'); @endphp
@if($stop_reg==1)
<a class="nav-link" href="{{ route('register') }}" style="font-size:11px">Register</a>
@elseif($stop_reg==0)
<a class="nav-link" href="{{ route('stop_register') }}" style="font-size:11px">Register</a>
@endif
在上面的代码片段中,声明两个路由;一个用于注册页面,第二个用于404页面。在控制器上,有两个功能,用于注册页面和404页面。