草庐IT

$中间件

全部标签

php - 如何从中间件向 Laravel 的 IOC 容器添加对象

我想在我的中间件中创建一个对象(在本例中,是来自Eloquent查询的集合),然后将它添加到IOC容器中,这样我就可以在我的Controller中使用类型提示方法签名来访问它。这可能吗?我在网上找不到任何例子。 最佳答案 您可以通过几个步骤轻松完成此操作。创建新的中间件(随意命名)phpartisanmake:middlewareUserCollectionMiddleware创建将扩展Eloquent数据库集合的新集合类。此步骤不是必需的,但可以让您将来使用不同的集合类型创建不同的绑定(bind)。否则,您只能对Illuminat

php - 流明:jwt-auth 不存在方法句柄,已完成中间件

嘿,所以我刚刚更新到Lumen5.2并遇到了jwt-auth的问题。我已按照所有说明更新了我的app.php文件,包括所有中间件。我还Composer需要照明/路由和照明/授权。但是我得到了错误:Macroable.php第81行中的BadMethodCallException:方法句柄不存在。在Macroable.php第81行的ResponseFactory->__call('handle',array(object(Request),object(Closure)))我似乎无法从那个错误中得到任何意义?这是我的boostrap/app.php供引用:load();}catch(D

php - Laravel 通过中间件授权

我在laravel5.3中通过以下两个操作创建了一个策略:classProjectPolicy{...publicfunctionindex(User$user){returntrue;}publicfunctioncreate(User$user){returntrue;}...}然后我尝试通过路由组中间件进行授权:Route::group(['middleware'=>['can:index,create,App\Project']],function(){Route::resource('projects','ProjectController');});当然我已经正确创建了项目

php - Laravel Elfinder 在使用 'auth' 中间件时重定向到主页

我正在使用https://github.com/barryvdh/laravel-elfinder每当我在config/elfinder.php文件中将middleware设置为auth时,我都会被重定向到主页,但是当我使用middleware来NULL,elfinder可以正常打开。如何在laravel中保护elfinder的路由,以便只允许访问的用户打开文件管理器?谢谢 最佳答案 解决方案是在config\elfinder.php文件中使用web作为另一个中间件。所以,解决方案就变成了'middleware'=>"['auth'

php - 有没有办法在数组中间启动一个 foreach 循环?

我有几个月的数组。我想遍历每个月作为获取每个月值的关键但是......我想从当前月份开始,运行foreach并返回到下一年的第12个月停止。我已经尝试根据当前月份创建一个单独的月份数组,但它看起来有点笨拙。 最佳答案 您可以使用带有模计数器的do/while循环,例如$months=array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');$i=$current_month=5;do{echo$months[$i]."\n";$i=(

php - Web 中间件应用于 Laravel 5.2 中的 API 路由

我有以下路线:Route::group(['prefix'=>'api/v1','middleware'=>'api'],function(){Route::resource('authenticate','AuthenticateController',['only'=>['index']]);Route::post('authenticate','AuthenticateController@authenticate');Route::resource('users','UserController');});UserController有一个测试,以确保当用户通过POST提交时,

php - 将数据从中间件传递到 View 或以其他方式在每个页面中显示特定数据

在我的网站上,我有一个相当复杂的类别,我必须在每个View(在客户端)中显示它,所以我想我将用于创建类别的代码放在中间件中并将结果传递给View所以我创建了我的中间件,但我无法弄清楚如何将它的数据传递到我的View而无需在Controller中执行某些操作我已经在我的中间件中尝试了这些方法merge(array("all_categories"=>"abc"));$request['all_categories']='abc';return$next($request);}}路线:Route::group(['middleware'=>['category']],function(){

php - ReflectionException - 中间件类不存在 Laravel 5.5

我知道我不是第一个遇到这样问题的人。我已经阅读了关于Stackoverflow和其他来源的所有现有信息,但它无法解决我的问题,我总是会得到一个ReflectionExceptionClassApp\Http\Middleware\xxxdoesnotexist。不是开玩笑,这真的是我的课。我已将其重命名为xxx以避免打字错误。我所有的路由都会通过web和admin中间件:Route::middleware(['web','admin'])->group(function(){这是我的/app/Http/Kernel.php:protected$middlewareGroups=['we

php - Laravel全局中间件获取不到session

protected$middleware=[\App\Http\Middleware\Syspoint::class,]useSession;classSyspoint{echo\Session::get('syspoint');}每次页面请求时我都需要运行一个中间件,中间件包含session。我放置在protected$middleware中,但是全局中间件无法获取session。 最佳答案 您正在调用session,但它尚未启动。如果您需要在中间件中使用Session,则必须将其放在web键下的属性protected$middl

php - laravel 中的中间件是什么?

我正在尝试了解中间件在Laravel中的工作原理。这是我的类(class),谁能解释一下它是如何工作的。?age谢谢 最佳答案 Middleware提供一种方便的过滤机制HTTP请求进入您的应用程序。例如,Laravel包括middleware验证您的应用程序的用户是否已通过身份验证。如果用户未通过身份验证,则middleware会将用户重定向到登录屏幕。但是,如果用户通过身份验证,则middleware将允许请求进一步进入应用程序。Reference编辑:如@num8er所述中间件是介于路由器和路由处理程序之间的功能(或逻辑)。在