Laravel中如何在视图间传递数据并嵌入渲染子视图展示
Laravel视图嵌入并传参的实现方法
首先修正你控制器代码中的语法错误:数组中age键名后多了一个多余的.,修正后控制器代码如下:
$data = [ 'name' => 'Jony', 'age' => 18 ]; return View::make("user/detail", compact('data'));
核心实现方式
你只需要在detail.blade.php的指定渲染位置使用Blade的@include指令即可,该指令支持引入子视图,默认继承父视图的所有可用变量,也可以手动指定要传递的变量,提升代码可读性。
修改后的detail.blade.php对应位置代码:
<div class="user-informatio"> {{-- 引入user子视图,手动传递$data变量 --}} @include('user.user', ['data' => $data]) </div>
规则说明
@include的第一个参数为子视图的路径,规则和View::make一致,使用.分隔目录层级,无需写.blade.php后缀- 第二个参数为可选的变量数组,数组的键名就是子视图中可以调用的变量名。即使不手动传这个参数,父视图已有的
$data变量也可以直接在user.blade.php中使用,手动传参更便于后续代码维护 - 子视图
user.blade.php的原有代码无需做任何修改,直接就可以读取到$data变量渲染对应内容
内容的提问来源于stack exchange,提问作者Miedkes
相关产品推荐
相关产品推荐

