[英]How can I enable a certain route access only when a certain condition is true?
我试图根据我的.env
文件的标志来阻止我的主登录页面。 我不确定这是否是正确的方法。
在我的.env
我添加了
LOGIN_PAGE=true
然后在我的路由文件中
我补充说,如果检查
if(env('LANDING_PAGE') == true){
Route::get('/',['as' => 'login', 'uses'=>'AuthController@getSignIn']);
Route::post('/', 'AuthController@postSignIn');
}
LOGIN_PAGE=fasle
我转到我的登录页面,发现 404 页面未找到,这很好。
LOGIN_PAGE=true
我去我的登录页面,我仍然得到 404 Page not found 这不好。 我应该看到我的登录页面。
我忘记了什么? 怎么会去和#GOAL
我试图根据我的.env
文件的标志来阻止我的主登录页面。 我不确定这是否是正确的方法。
在我的.env
我添加了
LOGIN_PAGE=true
然后在我的路由文件中
我补充说,如果检查
if(env('LANDING_PAGE') == true){
Route::get('/',['as' => 'login', 'uses'=>'AuthController@getSignIn']);
Route::post('/', 'AuthController@postSignIn');
}
LOGIN_PAGE=fasle
我转到我的登录页面,发现 404 页面未找到,这很好。
LOGIN_PAGE=true
我去我的登录页面,我仍然得到 404 Page not found 这不好。 我应该看到我的登录页面。
仅当特定条件为真时,如何启用特定路由访问?
您所要求的最佳实践是定义一个可以随时随地重用的中间件:
php artisan make:middleware CheckIsLandingPage
然后定义中间件背后的逻辑
<?php
namespace App\Http\Middleware;
use Closure;
class CheckIsLAndingPage
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
// your logic here
if (env('LANDING_PAGE') == true) {
return redirect('somewhere');
}
return $next($request);
}
}
在 Laravel 文档中阅读更多内容: https ://laravel.com/docs/5.1/middleware#defining-middleware
最新的 5.5 没有太大变化: https : //laravel.com/docs/5.5/middleware#defining-middleware
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.