我想在响应返回的地方覆盖laravel。然后我想检测状态代码(200或301),如果请求是ajax。如果状态代码是200和请求是ajax我想返回自定义html.类似的东西:
protected function returnResponse($statusCode, $html, $redirectUrl){
if($statusCode == 200 && isAjax()){
return parent::returnResponse($customStatusCode, $customHtml, $customRedirectUrl);
}
return parent::returnResponse($statusCode, $html, $redirectUrl);
}
编辑:我有这个:
class SomeMiddleware
{
public function handle($request, Closure $next)
{
// do before
$request = $next($request);
//do after
return $request;
}
}
但是如何检测当前响应是否重定向?
我的最终解决方案:
<?php
namespace App\Http\Middleware;
use Closure;
use Response;
use Request;
class AjaxForm
{
public function handle($request, Closure $next, $guard = null)
{
$response = $next($request);
if(Request::ajax() && $response->status() == 301) {
return (Response::make($response->getTargetUrl(), '200'));
}
return $response;
}
}
如果您想检查最终响应并可能返回替代响应,让我们编写一个简单的中间件。
听起来您希望在构建默认响应之后,在最后进行检查(这样您就可以检查它)。因此,我们将这样开始:
// First get the default response
$response = $next($request);
我们的$response
变量现在将保存Laravel即将响应的响应。
如果要查看响应是否为重定向,可以轻松检查RedirectResponse
实例:
$isRedirect = $response instanceof \Illuminate\Http\RedirectResponse;
您可以简单地测试原始请求是否为ajax:
$isAjax = $request->ajax();
如果您现在想返回一个不同的响应,而不是您收到的响应,我会使用简单的响应()
助手方法:
return response($content, $status);
综合起来,我相信这大概就是你要找的:
use Illuminate\Http\RedirectResponse;
class HijackMiddleware
{
public function handle($request, Closure $next)
{
$response = $next($request);
if($request->ajax() && $response instanceof RedirectResponse) {
return response("This is a <strong>different and custom</bold> response");
}
return $response;
}
}
我经常使用助手,我只是向用户返回带有消息的数据。现在我必须包括超文本传输协议状态代码,但我不想更改每个响应(这很可能是坏的)。 因此,我试图通过创建自己的
我是新来的Laravel使用本地开发环境与家园尝试运行简单的测试 路由/网络。php: 运行phpunit返回404错误 vagrant@homestead:~/code/laravel$phpunit phpunit 6.4。3由塞巴斯蒂安·伯格曼和撰稿人撰写。 .F.3/3(100%) 时间:1.07秒,内存:10.00MB 有1次失败: 1) Tests\Feature\UserTest::
本文向大家介绍跟我学Laravel之配置Laravel,包括了跟我学Laravel之配置Laravel的使用技巧和注意事项,需要的朋友参考一下 当你需要在运行时访问配置项时,可以使用Config类: 获取一个配置项的值** 如果配置项不存在,你还可以指定返回的默认值: 为配置项赋值 注意"点"式语法可以用来访问不同文件里的配置项的值。你还可以在运行时为配置项赋值。: 在程序运行时设置的配置值只在本
本文向大家介绍跟我学Laravel之安装Laravel,包括了跟我学Laravel之安装Laravel的使用技巧和注意事项,需要的朋友参考一下 安装Composer Laravel框架使用Composer(PHP包管理工具,参考 Composer 中文文档)来管理代码依赖性。 首先,你需要下载Composer的PHAR打包文件( composer.phar ),下载完成后把它放在项目目录下或者放到
我正在将我的Laravel5.3网站升级到5.5,无法让Dusk在我的本地主机上正常工作。我有其他单元测试可以在本地主机上正常工作,但是由于某些原因,Dusk对任何本地页面返回。本地页面似乎工作很好,在我的桌面上浏览它。 我的DuskTestCase null
问题内容: 在运行该行之后,在指令指针返回到调用函数之前,是否可以看到方法的返回值? 我正在调试无法修改的代码 (阅读:不想重新编译第三方库) ,有时它会跳转到我没有源代码的代码,或者return表达式具有使我无法继续工作的副作用只需在“ 显示” 标签中运行表达式即可。 通常在复合语句中使用返回值,因此 Variables 视图将永远不会向我显示该值(因此希望在控件返回到调用函数之前先查看结果)。