Laravel 拉威尔-can';无法访问错误包
我看不到任何验证错误,Laravel 拉威尔-can';无法访问错误包,laravel,laravel-5.2,Laravel,Laravel 5.2,我看不到任何验证错误,$errors总是空的,我也不知道为什么。 我已经做了一百万次,但在这个项目中,我没有看到问题 表格如下: @if( count( $errors ) > 0 ) <div class="alert alert-danger"> <ul> @foreach( $errors->all() as $error ) <li>{{
$errors
总是空的,我也不知道为什么。我已经做了一百万次,但在这个项目中,我没有看到问题 表格如下:
@if( count( $errors ) > 0 )
<div class="alert alert-danger">
<ul>
@foreach( $errors->all() as $error )
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
{{ Form::open(['url'=>route('admin.roles.store'), 'method'=>'post']) }}
<input type="text" name="name">
{{ Form::submit() }}
{{ Form::close() }}
路由使用中间件组:
'backend' => [
'auth',
\App\Http\Middleware\Boilerplate\CheckIfUserCanAccessToBackend::class
]
这就是中间件:
<?php
namespace App\Http\Middleware\Boilerplate;
use Closure;
class CheckIfUserCanAccessToBackend
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$user = $request->user();
// Admin can access
if( $user->hasRole('admin') )
{
return $next($request);
}
// The user has the permission?
if($user->can('access_backend') ){
return $next($request);
}
// Can't access
return abort(403);
}
}
导致此问题的一个原因是将web
中间件手动添加到routes.php
路由。刚刚花了2天时间……谢谢,我删除了web
中间件,现在它可以工作了!
<?php
namespace App\Http\Middleware\Boilerplate;
use Closure;
class CheckIfUserCanAccessToBackend
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$user = $request->user();
// Admin can access
if( $user->hasRole('admin') )
{
return $next($request);
}
// The user has the permission?
if($user->can('access_backend') ){
return $next($request);
}
// Can't access
return abort(403);
}
}