简单的问题,我想。
我有一个调用控制器中的函数的路由。在那个控制器中,我调用了另一个控制器函数。
例如:
$_testing = with(new TestingController)->prepwork($variable1,$variable2);
在TestingController prepwork()内部,如果条件匹配,我
return Response::view(...);
问题 - 怎么还不够? return只是将控制权返回给调用函数(这是有意义的),但是如何告诉Laravel - 停止你正在做的事情并输出该视图。
为了使其有效,我必须:
$_testing = with(new TestingController)->prepwork($variable1,$variable2);
return $_testing;
这不能真正起作用,因为预制作业旨在做一些繁重的工作,然后输出结果模型。视图仅在出现错误时启动。
是的 - 我知道我可以这样做:
if ($_testing->whatImCheckingForErrors) { return Response::view(...); }
我只是想了解为什么返回Response :: view不会结束处理......如果这样做有意义。
答案 0 :(得分:1)
只有最后一次返回才会结束处理,因为应用程序将收到最后一次返回并呈现您发送的任何内容。
如果您调用方法(1),调用另一个方法(2),调用第三个方法(3),Laravel应用程序将仅在您从(1)返回时收到视图。
这就是为什么当你添加最后一次回归时它起作用了。
你可以做些事情,比如:
echo Response::view(...);
die;
它有时可能有效,但
但这真的很糟糕,除非你只是测试,否则不要这样做!
因为Laravel将无法关闭所有内容并刷新所需内容,您可能会损害您的应用程序甚至服务器。