laravel中的视图默认保存在 resourcesviews 目录下。在控制器中,我们通常使用 view() 方法返回一个视图文件。
<?php namespace AppHttpControllers; use IlluminateHttpRequest; class TestController extends Controller { public function test(Request $request) { return view('test'); } }
对于有多层目录结构的视图,我们可以通过 (.) 点号进行分隔。
<?php namespace AppHttpControllers; use IlluminateHttpRequest; class TestController extends Controller { public function test(Request $request) { //查找 resourcesviews est estindex.blade.php //或 resourcesviews est estindex.php return view('test.test.index'); } }
我们可以通过 view() 的第二个参数 或 with() 方法来给视图传递数据。
<?php namespace AppHttpControllers; use IlluminateHttpRequest; class TestController extends Controller { public function test(Request $request) { return view('test', [ 'id' => 1, 'name' => 'test', ]); } }
有些时候我们需要在所有视图中共享一些变量。让这些变量在视图中都可以访问到。
常用做法是我们创建一个控制器基类,所有其他控制器继承该基类,然后在该基类的构造方法中使用 view()->share()来设置共享变量。
<?php namespace AppHttpControllers; class BaseController extends Controller { public function __construct() { view()->share('css_path', ''); view()->share('img_path', ''); view()->share('js_path', ''); } }