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