You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何将@include注入的数据以数组形式访问?

Laravel局部视图中直接访问所有注入数据的方法

嘿,这个需求其实Laravel早就为你内置了解决方案!完全不用手动打包数据,就能像ASP.NET MVC里的@model那样直接拿到所有传入视图的全局数据容器。

方法1:使用内置的$__data变量

Laravel的视图系统里有个内置的隐藏变量$__data,它本质就是一个关联数组,包含了所有传递给当前视图的变量——不管是通过@include传入的,还是全局共享的变量,都会存在这个数组里。

举个例子:
父视图里的代码:

@include("someview", ["name"=>"the_name", "family" =>"the_family"])

在someview.blade.php局部视图里,你可以直接这样访问:

// 单个访问数据
{{ $__data['name'] }}
{{ $__data['family'] }}

// 直接传给本地化函数(完美适配你的需求)
{{ __('your.localization.key', $__data) }}

这个方法最符合你想要的“直接访问注入数据容器”的需求,完全不需要额外处理,开箱即用。

方法2:手动打包成单个数组传递(可选)

如果你觉得$__data的命名不够直观,也可以在@include的时候主动把所有数据打包成一个指定的数组参数,比如:

@include("someview", ['arr' => ["name"=>"the_name", "family" =>"the_family"]])

然后在局部视图里直接用$arr['name']、$arr['family']访问,不过这种方式需要手动封装,不像$__data那样自动包含所有视图数据。

小提示

$__data是Laravel视图的内部变量,它不仅包含你@include传入的变量,还会包含通过view()->share()共享的全局变量,甚至视图 composers 绑定的数据,所以它是当前视图所有可用数据的完整集合。

内容的提问来源于stack exchange,提问作者Navid_pdp11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:43:42