Php Laravel中间件在表单提交之前执行操作

Php Laravel中间件在表单提交之前执行操作,php,laravel,Php,Laravel,我只是创建了一个随机应用程序来检查用户是否有资格投票。我正在使用中间件检查年龄是否小于18岁,然后重定向到/age/validate。但问题是中间件在表单提交之前执行操作。请帮忙 表格:: {!! Form::open(['action'=>'AgeController@store', 'method'=>'POST']) !!} {!! Form::number('age', null) !!} {!! Form::submit('Check') !!} {!! F

我只是创建了一个随机应用程序来检查用户是否有资格投票。我正在使用中间件检查年龄是否小于18岁,然后重定向到/age/validate。但问题是中间件在表单提交之前执行操作。请帮忙

表格::

{!! Form::open(['action'=>'AgeController@store', 'method'=>'POST']) !!}
    {!! Form::number('age', null) !!}
    {!! Form::submit('Check') !!}
{!! Form::close() !!}
中间件::

public function handle($request, Closure $next)
{
    if($request->age <= 18){
        return redirect()->route('noteligble');
    }

    return $next($request);
}
请帮助我如何使中间件仅在表单提交后工作。

在每个请求之前执行中间件。您将中间件分配给整个资源,从而分配给显示表单的路由


解决方案 仅将中间件分配给控制器中的store方法。从routes文件中删除
->中间件('agechecker')
方法调用,并将其添加到控制器构造函数中,如下所示:

public function __construct()
{
    $this->middleware('agechecker')
         ->only(['store']);
}
在每个请求之前执行中间件。您将中间件分配给整个资源,从而分配给显示表单的路由


解决方案 仅将中间件分配给控制器中的store方法。从routes文件中删除
->中间件('agechecker')
方法调用,并将其添加到控制器构造函数中,如下所示:

public function __construct()
{
    $this->middleware('agechecker')
         ->only(['store']);
}

非常感谢你,兄弟!一切都明白了。非常感谢你,兄弟!理解所有的事情。