返回视图或回显视图有什么区别?返回视图的谈话时间长于回声视图

时间:2018-10-05 15:34:46

标签: php laravel laravel-5.4

加载视图的最佳实践是什么。

文档说这里https://laravel.com/docs/5.7/views

加载视图

以下是我的代码:

 if (isset($results['status'])) {
           $error [] = $results['msg'];
           $request->session()->flash('message.level', 'danger');
           $request->session()->flash('message.content', $error);
 } else {
           if (view()->exists('import.device.results')) {
                  echo view('import.device.results', compact('results'));
                  exit;
           }
 }

当我使用

  

echo view('import.device.results',compact('results'));

需要一秒钟,当我使用

  

返回视图('import.device.results',compact('results'));

大约需要10秒

我的查看文件:

@extends('layouts_blue.master')
@section('content')
    <!--content-->

    <script language="JavaScript">
    </script>
    <div class="container content-body table-responsive" id="no-more-tables1">

        @if(session()->has('message.level'))
            <div class="alert alert-{{ session('message.level') }} import-device-error">
                <ul class="fa-ul">
                    @foreach (session('message.content') as $error)
                        <li>{!! $error !!}</li>
                    @endforeach
                </ul>
            </div>
        @endif

    </div>
    </div>
@stop

2 个答案:

答案 0 :(得分:5)

Laravel在收到控制器的响应后执行了许多必要的操作。通过退出控制器,您将在请求的生命周期中终止该请求:

  • 无法运行可移植的中间件。大多数框架中的中间件都可以在将请求发送到控制器之前运行,并且可以在从控制器接收到响应之后运行
  • 终止的回调(在应用程序/容器中注册)将不会执行。
  • 会话可能不会持久。取决于所使用的驱动程序,会话数据可能直到控制器返回响应后才能持久保存。
  • 您的所有cookie和标头都可能不会发送。
  • 响应不会自动转换为字符串或JSON。

答案 1 :(得分:1)

return如果从函数中调用,则return语句立即结束当前函数的执行,而returns则是其被调用函数的值。将值传递给另一个函数或变量。

echo输出一个或多个值

echo打印该值,以便您可以读取它。

return返回要保存在变量中的值。

在laravel中,您可以通过return将视图存储在变量中。

在用于停止执行或传递给下一个功能的中间件return

return中,您可以像键入Json或对象或带有值的许多数组一样键入时返回。