Laravel控制器向视图传数组:如何获取recipients属性
解决Laravel Blade中访问二维数组字段的问题
你的postData里的recipients是二维数组(数组里嵌套了多个子数组),不像message是单个字符串值,所以不能直接用{{$postData['recipients']['dest_addr']}}这种写法,得根据需求用下面的方法:
1. 访问单个收件人的字段
如果你只需要取某一个收件人(比如第一个),可以通过数组索引直接访问(索引从0开始):
{{-- 第一个收件人的ID --}} {{ $postData['recipients'][0]['recipient_id'] }} {{-- 第一个收件人的地址 --}} {{ $postData['recipients'][0]['dest_addr'] }}
2. 遍历所有收件人并显示/生成表单字段
如果要展示所有收件人或者生成对应表单输入框,用Blade的@foreach循环遍历recipients数组:
{{-- 遍历所有收件人 --}} @foreach($postData['recipients'] as $recipient) <div class="recipient-item"> {{-- 收件人ID输入框 --}} <label>收件人ID:</label> <input type="text" name="recipients[][recipient_id]" value="{{ $recipient['recipient_id'] }}"> {{-- 收件人地址输入框 --}} <label>目标地址:</label> <input type="text" name="recipients[][dest_addr]" value="{{ $recipient['dest_addr'] }}"> </div> @endforeach
这里用name="recipients[][xxx]"的命名方式,提交表单后后端会自动把数据组装成二维数组,和你原有的postData['recipients']结构一致。
3. 处理空数组的情况(可选)
如果recipients可能为空,建议先判断再遍历,避免报错:
@if(!empty($postData['recipients'])) @foreach($postData['recipients'] as $recipient) {{-- 这里放循环内容 --}} @endforeach @else <p>暂无收件人</p> @endif
内容的提问来源于stack exchange,提问作者Jijiri
相关产品推荐
相关产品推荐

