laravel 5.3
我试图使一个按钮或链接执行激活函数在AdminController,虽然每当我点击按钮它给我404页说它找不到AdminController@activate。
当我从函数中使用dd()时,它不做任何事情。
如果你需要任何其他信息,请告诉我,我不是一个旅游专家:-)
管理中间件use Closure;
use IlluminateSupportFacadesAuth;
class admin
{
/**
* Handle an incoming request.
*
* @param IlluminateHttpRequest $request
* @param Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (Auth::check() && Auth::user()->level == 2)
{
return $next($request);
}
return abort(401, 'Unauthorized');
}
}
Web路径
Route::group(['middleware' => ['auth.admin']], function() {
Route::resource('admin', 'AdminController');
Route::get('/admin/{id}/delete', 'AdminController@delete');
Route::get('/admin/activate', 'AdminController@activate');
});
AdminController
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppUser;
use AppHttpRequests;
use AppHttpControllersController;
use IlluminateSupportFacadesHash;
class AdminController extends Controller
{
public function activate(){
$users = User::where('active', 0)->get();
$users->active = 1;
$users->timestamps = false;
$users->update();
$users->timestamps = true;
return redirect('admin');
}
}
HTML/叶片
<a href="{{ url('/admin/activate') }}"><span class="glyphicon glyphicon-cog" aria-hidden="true">Activate all</span></a> <br>
@foreach ($data['inactiveusers'] as $user)
{{$user->firstname}} {{$user->surname}}
<a href="{{ url('/admin/' . $user->id .'/edit') }}"><span class="glyphicon glyphicon-cog" aria-hidden="true"></span></a>
<a href="{{ url('/admin/' . $user->id .'/delete') }}"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></a>
<br>
@endforeach
laravel中间件不允许未经身份验证的用户访问受保护的url。
确保用户对您请求的url进行了身份验证
提示:
将/admin/activate移出中间件并尝试直接访问。它应该可以工作
最坏的Hack:
您可以在Kernal.php
中的middlewareGroups
禁用此功能,但不建议这样做。