- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在 PHP MVC 框架中,如何干净地和优雅地退出当前 Controller /操作,但继续正常的脚本执行?
例如,假设我的框架通常遵循以下大纲:
现在,假设我想在“Do Stuff”步骤的某处停止“正常”执行,比如渲染不同的 View ,或进行 header 重定向,我想停止处理正文的其余部分操作,但继续“处理输出”步骤
我怎样才能以最好的方式实现这一点?我唯一的想法是:
//in controller
protected function redirect($url) {
header("Location: $url");
exit();
}
但这完全跳过了框架执行的其余部分,并将输出缓冲区中的任何内容直接转储给用户。替代方案:
//in dispatcher
call_user_func_array(array($controller,$action),$params);
afterwards:
...
//in controller
protected function redirect($url) {
header("Location: $url");
goto afterwards;
}
然而,这让我 twitch并且违背了我所学到的一切,特别是因为它引用的标签完全在另一个文件中。
那么,还有其他方法可以实现吗?
注意:重定向示例可能应该使用 exit()
方式,因为无论如何我们只是重定向到另一个页面而不关心输出。我正在寻找通用解决方案。
最佳答案
在您的 Action 方法中,您可以将所有输出收集到一个字符串中,而不是打印出来。仅在方法结束时将其打印出来。如果您需要重定向或退出,那么您还没有输出任何内容,您可以重定向或从该方法返回。
关于PHP MVC : How to exit from Actions/Controllers early?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3133868/
“Fail Early”是什么意思,在什么情况下这种方法最有用,你什么时候会避免这种方法? 最佳答案 本质上,快速失败 (又名 尽早失败 )是对您的软件进行编码,使得 当出现问题时,软件会尽快并尽可能
嗨,我正在尝试安装 Homebrew (MacOS Catalina) 在他们的官方网页上运行命令后,我收到以下错误。 在此先感谢您的帮助。 Cloning into '/usr/local/Home
在尝试了解有关计算表达式如何工作的更多信息时,我尝试编写一个构建器,该构建器在评估 if 的 then block 后跳过表达式的其余部分> 语句,因此工作流本身将评估为 true。如果没有任何 if
在下面的函数中,是什么让 try: 提前退出?如果我将相同的代码放在 def block 之外,它就可以正常工作。 tiles = ['095D', '094M'] in_file = 'in_fil
我正在使用 Keras 训练神经网络,使用提前停止。然而,在训练时,网络很早就达到了验证损失异常低的点,一段时间后就变平了,就像这样。 当使用 patience = 50 的提前停止时,验证损失趋于平
我想从 github 上克隆一个项目到我的电脑上 D:\Projects> git clone https://github.com/***/***.git 但是在下载的时候,出现了几个致命的错误:
我正在使用Haskeline包,我想在做任何事情之前从命令行连续获取三个字符串,并且我想出了对我来说似乎是一个巧妙的解决方案。但我确信可能有更好的方法来做到这一点。我正在寻找使用 Haskeline
This question already has answers here: Using return inside a lambda? (5个答案) 1年前关闭。 在Runnable块中,我想执行
这个问题已经有答案了: Python Tkinter Error, "Too Early to Create Image" (1 个回答) 已关闭 4 年前。 我正在尝试创建一个图像库并从 tkint
在我的 AngularJS Controller 中,我调用了我的数据服务方法,它生成了一个 $http调用以获取页面显示所需的数据。 appDataService.getById() .succ
这个问题在这里已经有了答案: How to properly break out of a promise chain? (3 个答案) 关闭 7 年前。 我最近开始用 coffeescript/j
我是 winsock2 的新手,并为我试图用来向我在同一台计算机上运行的客户端(连接到 127.0.0.1 的客户端)发送字符串的服务器编写了以下代码与服务器相同的端口设置为监听)。 如果重要的话,我
我的问题很简单:我正在等待截取 MKMapView 的屏幕截图,并且我只想在加载 map 后执行此操作。不幸的是,这个委托(delegate)方法几乎总是在 map 实际加载之前被调用。如果我幸运的话
考虑以下设置: 啊.h #define A 5 #define B A #undef A #define A 3 交流 #include "a.h" #include int main() {
我正在运行安装了 Git(来自 Ubuntu 包管理器的最新版本)的 Ubuntu (9.10) 服务器。通过 SSH 访问 Git。在 Windows 机器上,我使用 Cygwin 来推送/pull
我有一个需要微秒延迟的驱动程序。为了创建这种延迟,我的驱动程序使用了内核的 udelay 函数。具体来说,有一次调用 udelay(90): iowrite32(data, addr + DATA_O
425 “太早”状态码的描述: Indicates that the server is unwilling to risk processing a request that might be re
如果是前向渲染,那么FS执行的次数是(numberOfAllPixels * numberOfLights),如果是延迟渲染,那么FS执行的次数是(numberOfVisiblePixels * nu
在 Web 编程时经常发生在我身上的事情:我想运行一个有可能失败的操作。如果失败,我想向客户端发送 500。但通常,我只想继续执行一系列步骤。 doSomeWebStuff :: SomeWebMon
我正在使用 Keras。我正在训练我的神经网络并使用 Early Stopping。我的耐心是 10,验证损失最低的纪元是 15。我的网络运行到 25 个纪元然后停止,但是我的模型是 25 个纪元而不
我是一名优秀的程序员,十分优秀!