首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel 5.2如何在中间件中使用config::set

在Laravel 5.2中,可以通过使用config::set方法在中间件中设置配置项。

首先,需要确保已经创建了一个自定义的中间件类。可以通过运行以下命令来生成一个新的中间件类:

代码语言:txt
复制
php artisan make:middleware CustomMiddleware

生成的中间件类将位于app/Http/Middleware目录下。

接下来,在生成的中间件类中,可以使用config::set方法来设置配置项。例如,假设要设置一个名为app.locale的配置项,可以在中间件的handle方法中添加以下代码:

代码语言:php
复制
namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Config;

class CustomMiddleware
{
    public function handle($request, Closure $next)
    {
        Config::set('app.locale', 'en');

        return $next($request);
    }
}

上述代码将会将app.locale配置项的值设置为en

需要注意的是,config::set方法设置的配置项只在当前请求中生效,并不会永久改变配置文件中的值。

在应用程序中使用该中间件时,可以将其添加到路由中间件组或指定的路由中。例如,在app/Http/Kernel.php文件的$routeMiddleware数组中注册中间件:

代码语言:php
复制
protected $routeMiddleware = [
    // ...
    'custom' => \App\Http\Middleware\CustomMiddleware::class,
];

然后,在路由中使用该中间件:

代码语言:php
复制
Route::get('/', function () {
    // ...
})->middleware('custom');

这样,在访问该路由时,中间件将会被执行,并且配置项app.locale的值将会被设置为en

关于Laravel 5.2的更多信息和使用方法,可以参考腾讯云的Laravel 5.2产品介绍页面。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Laravel5.3之bootstrap源码解析

说明:Laravel在把Request通过管道Pipeline送入中间件Middleware和路由Router之前,还做了程序的启动Bootstrap工作,本文主要学习相关源码,看看Laravel启动程序做了哪些具体工作...Laravel在入口index.php时先加载Composer加载器:Laravel5.2之Composer自动加载,然后进行Application的实例化:Laravel5.3之IoC Container...配置加载 配置加载就是读取config/文件夹下的所有配置值,然后存入\Illuminate\Config\Repository对象,而环境检测是读取.env文件存入$_ENV全局变量,加载环境配置主要是使用...异常处理 异常处理是十分重要的,Laravel异常处理类\App\Exception\Handler中有一个方法report(),该方法可以用来向第三方服务(Sentry)发送程序异常堆栈(以后在一起聊聊这个...这个过程主要使用了两个技术:一个是外观类的别名;一个是PHP的重载,可看这篇:Laravel5.2之PHP重载(overloading)。 6.

7K51

Laravel框架的核心架构,你懂多少?

使用过larave框架的朋友都知道laravel框架里面除了提供一些基本的功能(控制器、视图、模型)之外,还有中间件、门面、契约等,这些东西是如何在laravel框架运用起来的呢?...laravel框架所有服务都定义在了app/config/app.php 里面 服务提供者 可以给你提供一组服务的东西就是服务提供者,laravel里面如上所示其实定义的服务器提供者,比如IlluminateAuthAuthServiceProvider...3 config/app.php中服务别名alias大多数都使用了facade 4 使用facade是有风险的,并不是用的越多越好,这在手册上有少量的介绍,但具体的,还是需要开发中去发现 laravel...对于我们的用户(最上面的用户)想使用laravel框架,必须通过控制器来使用(上面的Controller),使用laravel框架主要是使用laravel里面的服务提供者(上面的 new 服务),这样就是最传统的开发模式...事件:laravel里面的模型里面的事件,比如用户对数据库操作时做的一个监听。对整个项目运行进行监听,有监听的动作。类似tp5里面的钩子和行为。 中间件:做用户的请求做一定的过滤。

2.8K20

Laravel框架的核心架构,你懂多少?

使用过larave框架的朋友都知道laravel框架里面除了提供一些基本的功能(控制器、视图、模型)之外,还有中间件、门面、契约等,这些东西是如何在laravel框架运用起来的呢?...laravel框架所有服务都定义在了app/config/app.php 里面 服务提供者 可以给你提供一组服务的东西就是服务提供者,laravel里面如上所示其实定义的服务器提供者,比如IlluminateAuthAuthServiceProvider...3 config/app.php中服务别名alias大多数都使用了facade 4 使用facade是有风险的,并不是用的越多越好,这在手册上有少量的介绍,但具体的,还是需要开发中去发现 laravel...对于我们的用户(最上面的用户)想使用laravel框架,必须通过控制器来使用(上面的Controller),使用laravel框架主要是使用laravel里面的服务提供者(上面的 new 服务),这样就是最传统的开发模式...事件:laravel里面的模型里面的事件,比如用户对数据库操作时做的一个监听。对整个项目运行进行监听,有监听的动作。类似tp5里面的钩子和行为。 中间件:做用户的请求做一定的过滤。

2.9K10

使用Entrust扩展包在laravel 实现RBAC的功能

想要在Laravel使用Entrust,首先需要通过Composer来安装其依赖包: composer require zizaco/entrust 5.2.x-de 安装完成后需要在config...EntrustServiceProvider::class, 同时在该配置文件中注册相应门面到aliases数组: ‘Entrust’ = Zizaco\Entrust\EntrustFacade::class, 如果你想要使用中间件...roles() 、hasRole(name) 、can(permission) 以及ability(roles,permissions, 软删除 使用Entrust提供的迁移命令生成的关联关系表默认使用了...如果你由于某种原因不能在数据库中使用级联删除,那么可以在EntrustRole 、EntrustPermission 类以及HasRole trait提供的事件监听器手动删除关联表的记录。...Entrust扩展包在laravel 实现RBAC的功能的文章就介绍到这了,更多相关Entrust扩展包实现RBAC内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn

6.1K10

Laravel框架下载,安装及路由操作图文详解

Laravel | 5则表示安装成功 NO.2Laravel核心目录文件介绍 这个是为了帮助你们理解以后在运用Laravel框架时候代码如何存放,然后说明一点,我这是5.2版本的Laravel。...目录一:app 整个Laravel 目录中最需要我们注意的地方,包含设置(config)、路由(routing)、MVC 模型的三大模块都在这里,项目的主要代码工作都在这个目录下完成。 ?...目录三:config 这个目录是网站的访问入口,请求都会进入 index.php ,同时存放所有对外开放的资源目录, css、javascript 以及图片等等皆被存放在此 ?...里面还有些具体的文件介绍请附录:laravel目录结构介绍 这里我就不做多介绍了 NO.3 Laravel路由 路由的使用 首先,我们要先打开Laravel目录的app目录,再点击APP目录里的http...composer.lock 扩展包列表,确保这个应用的副本使用相同版本的扩展包 config 应用程序的配置文件 database 数据库操作相关文件(数据库迁移和数据填充) node_modules

4.6K51

Laravel5.3之Session源码解析()

Laravel5.3把session垃圾回收放在了启动过程,尽管Laravel5.1是放在session关闭过程的,本篇聊下垃圾回收,这也是session第一步启动session的过程。...开发环境:Laravel5.3 + PHP7 Session垃圾回收 首先看下session中间件的源码\Illuminate\Session\Middleware\StartSession::class...操作Session 操作Session就是对从存储介质redis取出的数据进行CRUD增删改查操作,包括:数据读取;数据存储;数据删除;数据暂存。...就包含了把session数据从存储介质redis取出来,并存放在Store的$attributes属性,可看Store::loadSession()源代码: protected function...($arrayKey, $arrayValue); } } // '压入式存储',即如果redis中有'session.store'数据,就使用'Store'和旧数据

1K41

PHP-web框架Laravel-中间件(一)

Laravel中间件是处理HTTP请求的一种机制。它可以用来检查请求是否满足某些条件,比如是否已经进行了身份验证或者是否有足够的权限来访问某个资源。...中间件通常用于控制应用程序的访问权限,或者进行一些基于请求的操作,比如日志记录或性能分析。中间件的基本使用Laravel中间件可以通过路由或控制器来指定。...中间件Laravel中间件实际上是PHP类。在创建中间件时,可以选择手动创建类,也可以使用Laravel提供的中间件生成器来自动生成。...web中间件在这个示例,我们定义了两个中间件组:web和api。web中间件组包含一组用于Web应用程序的中间件加密Cookie、启动会话和验证CSRF令牌。...api中间件组包含一组用于API的中间件速率限制和API身份验证。在路由中使用中间件。可以在路由定义中使用中间件

3.3K31

Laravel5.3之Two-Factor Authentication神器——Duo

这里主要学习下如何利用Duo来Protect Web Application,这里假设Web程序是Laravel写的,看如何集成进Laravel实现二次认证。...实际上就是多加一个Middleware,这里假设名为auth.duo,先做个中间件: php artisan make:middleware DuoTwoFactorAuthentication 然后写上中间件代码...,使用Laravel自带的Auth Scaffold,然后使用Register功能往users表插入一个user,这样也方便: php artisan make:auth 然后输入http://sentry.app...选择Approve后桌面端程序就自动跳转到路由http://sentry.app:8888/duo,这次走的中间件DuoTwoFactorAuthentication逻辑是request->session...总结:本文主要学习使用Duo这个神器来做Two Factor Authentication,并学习了如何使用Web SDK集成进Laravel程序。以后遇到好的技术再分享下,到时见。

2.7K31

深度挖掘 Laravel 生命周期

在 「HTTP 内核」 内它定义了 [中间件]((https://github.com/laravel/laravel/blob/master/app/Http/Kernel.php) 相关数组;在 「...至于 「中间件」 和 「引导程序」如何被使用的,会在后面的章节讲解。...此时,LoadConfiguration 类就是将 config 目录下的所有配置文件读取到一个集合,这样我们就可以项目里通过 config() 辅助函数获取配置数据。 <?...'); }); date_default_timezone_set($config->get('app.timezone', 'UTC')); mb_internal_encoding...在开始前我们需要知道在 Laravel 中有个「中间件」 的概念,即使你还不知道,也没关系,仅需知道它的功能是在处理请求操作之前,对请求进行过滤处理即可,仅当请求符合「中间件」的验证规则时才会继续执行后续处理

7.4K20

Laravel5.2之Redis保存页面浏览量

说明:本文主要讲述使用Redis作为缓存加快页面访问速度。同时,会将开发过程的一些截图和代码黏上去,提高阅读效率。...推荐Laravel开发插件三件套,提高开发效率,可以参考之前写的Laravel5.2之Seeder填充数据小技巧: composer require barryvdh/laravel-debugbar.../cache.php文件把缓存驱动设为redis,还有redis自身配置在config/database.php文件: //config/cache.php //'default' => 'redis...$id; //Redis命令SISMEMBER检查集合类型Set中有没有该键,该指令时间复杂度O(1),Set集合类型中值都是唯一 $existsInRedisSet =...前缀,因为Cache::remember会自动在每一个key前加上laravel前缀,可以看cache.php这个字段:'prefix' => 'laravel' Redis

8.8K41

基于 Redis 在 Laravel 实现消息队列及底层源码探究

要在 Laravel 项目中使用 Redis 实现队列系统,只需在配置好 Redis 连接信息后将环境配置文件 .env 的 QUEUE_CONNECTION 配置值调整为 redis 即可: QUEUE_CONNECTION...=redis 这样一来,Laravel 就可以基于 config/queue.php 的 redis 配置初始化队列系统了: 'redis' => [ 'driver' => 'redis'...任务类推送和处理的完整链路 了解了 Laravel 队列系统底层实现原理后,我们再来看如何在业务代码中使用它。还是以文章浏览数更新为例,按照队列->消息->处理进程三个组件循序实现,方便对比理解。...你可以参考 Laravel 队列文档了解更多 Laravel 队列使用细节,除此之外,Laravel 还提供了一个适用于 Redis 队列系统的一体化解决方案 —— Horizon,推荐在生产环境使用它作为...,而不像一般并发编程那样不能确保子任务的执行顺序; 由于消息队列中间件(这里是 Redis)可以独立于应用(这里是 Laravel 项目)进行部署,而且理论上可以启动任意多个处理进程消费消息队列的任务

6.2K30
领券