视图

视图

  • 到目前为止,我们已经接触了一些路由闭包,并看到了return view('account')的一些内容,对于MVC模式来说,视图或模般指的是用于描述某些特定输出应该是什么样的文件,在Web框架中最常见的视图是用html进行输出的

  • 在Laravel中,有两种视图可以使用,分别为PHP和Blade模板,两种视图的区别在于,使用PHP引擎进行处理的文件名形式一般为about.php,而用Blade引擎进行处理的文件名形式一般为about.blade.php

  • 返回视图有三种不同的方法,第一种是直接使用view()加载,第二种是用View::make()加载,第三种是用注入Illuminate\View\View Factory 的方式实现视图的加载

  • 样例

    • 不传参数

      Route::get('/', function() {
          return view('welcome');
      });
      

      此代码可以在resource/views/welcome.php中或resoure/views/welcome.blade.php中查找视图,加载其内容,以及解析任何内联PHP或控件结构,直到有视图的输出。一旦返回它,它将被传递到响应栈的其余部分,并且最终被返回给用户

    • 传参数

      Route::get('tasks', function() {
          return view('tasks.index')->with('tasks', Task::all());
      });
      

      这个闭包加载resource/views/tasks/index.php或resource/views/tasks/index.blade.php,同时会传递一个名为tasks的单个变量给视图,该变量包含Task::all()方法所返回的结果,该方法是一个优秀的数据库查询办法

  • 视图Composer

    • 多次传递同一个变量可能是繁琐的事,这就可以使用一个共享变量与每个模板进行共享

      view()->share('variableName', 'variableValue');
      

你可能感兴趣的:(视图)