我正在使用 Sentinel 进行身份验证。只要我登录,一切正常。但是当我注销(删除persistences
表中的所有值)并且我打开something.blade.php
并单击link
触发发布请求的 a 时(请参阅下面的代码片段),我将被转发到登录页面。登录后,我收到以下 Laravel 错误:
Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException
路线web.php
:
Route::post('something/{xtype}/{xid}/execute/{yid}', 'MyController@execute');
控制器逻辑MyController.php
:
public function execute($xtype, $xid, $yid)
{
// business logic
return back();
}
查看something.blade.php
:
<form action="/something/{{ $something->xtype }}/{{ $something->xid }}/execute/{{ $others->yid }}" method="POST" id="y_{{ $others->yid }}">
{!! csrf_field() !!}
</form>
<a type="button" href="#" onClick="document.getElementById('y_{{ $others->yid }}').submit()">
中间件AdminMiddleware.php
:
public function handle($request, Closure $next)
{
if (Sentinel::check())
{
if (Sentinel::getUser()->roles()->first()->slug == 'admin')
{
return $next($request);
}
}
return redirect()->guest('/login')
->with(['error' => "You do not have the permission.."]);
}
}
编辑:
登录后,我会遇到LoginController
并执行以下代码:
return redirect()->intended($fallbackUrl);
由于我还是 Laravel 的新手,我很难在框架内部进行深入调试。您有什么想法/建议吗?
欢迎一切!提前致谢!