在Laravel应用程序上工作,我有一些路由,这些路由具有多步形式。在访问或填写以前的路由之前,我需要阻止用户访问最后一条路由(该链接指向表单的最后一页)。
路线
Route::get( '/first', 'TrController@payQuote')->name('b2c.payquote');
Route::get( '/second', 'TrController@emailQuote')->name('b2c.sendquote');
Route::get( '/receipt', 'TrController@getReceipt')->name('b2c.receipt');
Route::get( '/success', 'TrController@getSuccess')->name('b2c.success');
答案 0 :(得分:2)
您可以创建一个中间件类,然后直接在您的routes
文件中使用该中间件。
示例:
<?php
namespace App\Http\Middleware;
use Closure;
class CheckPermission
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
// TODO: Add your logic here.
if ($request->age <= 200) {
return redirect('home');
}
return $next($request);
}
}
然后在您的路线文件中:
Route::get('admin/profile', function () {
//
})->middleware(CheckPermission::class);
答案 1 :(得分:0)
有多种方法可以做到这一点。一种方法是,您可以在最后一页上检查http-referrer,如果它是最后一页之前的路由,则允许它,否则将其重定向到上一页。可以在每个页面上实现。
其他方式可以由数据库驱动。对于每个页面访问,您都可以在数据库中输入一个条目,然后检查下一页是否有条目,否则将其重定向到您想要的任何位置。