0

简单的问题,我想。

我有一个调用控制器中的函数的路由。在那个控制器中,我调用了另一个控制器函数。

例如:

$_testing = with(new TestingController)->prepwork($variable1,$variable2);

在 TestingController 的 prework() 内部,如果条件匹配,我

return Response::view(...);

问题 - 为什么这还不够?return 只是将控制权返回给调用函数(这是有道理的),但是我如何告诉 Laravel - 停止你正在做的事情并输出该视图。

为了使它工作,我必须:

$_testing = with(new TestingController)->prepwork($variable1,$variable2);
return $_testing;

这并没有真正起作用,因为准备工作旨在进行一些繁重的工作,然后输出结果模型。只有在出现错误时才会启动视图。

是的 - 我知道我可以做这样的事情:

if ($_testing->whatImCheckingForErrors) { return Response::view(...); }

我只是想了解为什么返回 Response::view 没有结束处理......如果这是有道理的。

4

1 回答 1

2

只有最后一个返回将结束处理,因为应用程序将接收最后一个返回并呈现您发送的任何内容。

如果您调用一个方法 (1),该方法调用另一个方法 (2),该方法调用第三个方法 (3),则 Laravel 应用程序将仅在您从 (1) 返回时接收视图。

这就是为什么当您添加最后一个返回时它起作用的原因。

您可以做一些事情,例如:

echo Response::view(...);
die;

它有时可能会起作用,但是

但这真的很糟糕,除非您只是在测试东西,否则不要这样做!

因为 Laravel 无法关闭所有内容并刷新它需要的任何内容,您可能会危及您的应用程序甚至服务器。

于 2013-09-24T20:13:17.483 回答