微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 返回或回显视图有什么区别?返回视图说话的时间比echo视图要长

加载视图的最佳做法是什么.

文档说这里加载视图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’));

它需要一秒钟,当我使用

return view(‘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

解决方法:

Laravel在从您的控制器获得响应后执行许多必要的操作.退出控制器后,您将在其生命周期的中间终止请求:

>不会运行可终止的中间件.大多数框架中的中间件可以在请求发送到控制器之前以及从控制器收到响应之后运行.
>终止回调(在应用程序/容器中注册)将不会被执行.
>会话可能不会持久化.根据所使用的驱动程序,在控制器返回响应之前,会话数据可能不会持久存在.
>可能不会发送您的所有Cookie和标头.
>响应不会自动转换为字符串或JSON.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐