草庐IT

$中间件

全部标签

php - 从中间件更改目标 Controller /操作

我有两个资源/test和/blabla。对于/test我已经注册了中间件。在中间件中,基于特定条件,我想将当前调用重定向到服务于/blabla资源的Controller/操作,对用户透明(没有任何额外的客户端请求,没有302状态响应代码等。)。我怎样才能实现它? 最佳答案 看起来您的解决方案可能更适合路由文件。您建议在特定条件下提供不同的路线。所以在你的routes.php文件中:Route::get('test',function(){if($condition){returnApp::make('App\Http\Control

php - Laravel CSRF 中间件不检查 X-CSRF-TOKEN 请求 header

中间件:useClosure;useIlluminate\Foundation\Http\Middleware\VerifyCsrfTokenasBaseVerifier;classVerifyCsrfTokenextendsBaseVerifier{publicfunctionhandle($request,Closure$next){returnparent::handle($request,$next);}}Javascript:$.ajaxSetup({headers:{'X-CSRF-TOKEN':'wrong-token-to-test','X-XSRF-TOKEN':'a

php 仅从 csv 文件中选择第一列、中间列和最后一列

我有一个已上传的csv文件,我需要确定csv文件中有多少条目,并将第一列、中间列和最后一列格式化为具有$header=>$value对的关联数组。我有将整个csv格式化为数组的代码functioncsv_to_array($filename='',$delimiter=','){if(!file_exists($filename)||!is_readable($filename)){returnFALSE;}$header=NULL;$data=array();if(($handle=fopen($filename,'r'))!==FALSE){while(($row=fgetcsv(

php - 中间件 Laravel 5 中的数据库访问

我正在试验Laravel5并遇到了HTTP中间件。我很想知道是否建议从中间件访问数据库(检查)并根据数据库结果过滤HTTP请求?P.S我能够在中间件中执行数据库查询。 最佳答案 我不明白为什么在中间件中访问数据库是不好的做法。以权限系统为例。您的中间件必须验证是否允许登录用户查看当前页面。如果不查询数据库就无法做到这一点(除非您从其他地方获得权限)如果此查询可能在许多请求上运行,您应该确保正确优化它并将查询时间减少到最低限度。 关于php-中间件Laravel5中的数据库访问,我们在St

php - 从中间件访问路由前缀中的 URL 参数

我正在努力从我的中间件访问路由前缀参数。给定此URL:http://www.example.com/api/v1/campaign/40/status,以及以下路由:Route::group(['prefix'=>'api/v1'],function(){Route::group(['prefix'=>'campaign/{campaign}','where'=>['campaign'=>'[0-9]+'],'middleware'=>['inject_campaign']],function(){Route::get('status','CampaignController@getS

php - Laravel hasManyThrough 对中间模型有约束

您好,我的实体之间存在以下关系。User-id-otherstuffNeighborhoodFilter-id-userId-neighborhoodId-isActiveNeighborhood-id-otherstuff我想为我的用户对象编写一个方法,该方法将返回用户所属的所有Neighborhoods,这些Neighborhoods由NeighborhoodFilter中的isActive=1指示。我尝试了以下方法,但我不知道将约束“isActive=1”放在哪里。有什么想法吗?publicfunctionneighborhoods(){return$this->hasManyT

php - 使用 throttle 中间件在 laravel 中增加 X-RateLimit-Limit

我可以找到降低该值的方法,但在我的情况下,我正在运行许多异步API调用,需要将X-RateLimit-Limit增加到100以上才能正常工作。请提出替代方案。以下是我得到的回复P.S-我也在使用auth中间件eHTTP/1.1429TooManyRequests日期:2017年3月10日星期五11:18:24GMT服务器:Apache/2.4.17(Win32)OpenSSL/1.0.2dPHP/5.5.35X-Powered-By:PHP/5.5.35缓存控制:无缓存X-RateLimit-限制:60X-RateLimit-剩余:0重试后:24Set-Cookie:XSRF-TOKE

php - 在 Laravel 中根据环境禁用 CSRF 中间件

在我的应用程序中,我想在我的笔记本电脑APP_ENV=local上运行时禁用CSRF,在开发时也想禁用CSRFAPP_ENV=dev。无法理解如何在routes.php或网络中间件中做到这一点。这是我的routes.phpRoute::group(['middleware'=>['web']],function(){Route::get('/',function(){returnview('welcome');})->middleware('guest');Route::group(['middleware'=>'auth'],function(){Route::resource('b

php - 在 Laravel >= 5.2.31 的路由中避免/删除网络中间件

在此之后changes即Laravel5.2.31及以上版本,app/Http/routes.php中的所有路由都将归入web中间件组。在RouteServiceProvider.phpprotectedfunctionmapWebRoutes(Router$router){$router->group(['namespace'=>$this->namespace,'middleware'=>'web',],function($router){requireapp_path('Http/routes.php');});}问题:在没有web中间件的情况下定义一组路由的最简单/最好的方法是

PHP:是否有可能以某种方式将 HTML 嵌入到三元运算符的中间?

例如,我可以做类似下面的事情吗?htmlgoeshere.somethingelse.该代码无效。所以我猜这是不可能的,是吗? 最佳答案 你不能像那样嵌入HTML,因为你过早地终止了三元表达式,导致解析错误。替代的if-else结构更具可读性。对于额外的几个字符,您将获得更容易理解的代码块:htmlgoeshere.somethingelse.您也可以使用花括号语法,但我不喜欢在我的代码周围看到杂散的、未标记的}。 关于PHP:是否有可能以某种方式将HTML嵌入到三元运算符的中间?,我们