视图
-
到目前为止,我们已经接触了一些路由闭包,并看到了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');
-
网友评论