laravel5如何向blade模板传递多维数组?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了laravel5如何向blade模板传递多维数组?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2715字,纯文字阅读大概需要4分钟。
内容图文
![laravel5如何向blade模板传递多维数组?](/upload/InfoBanner/zyjiaocheng/239/513d9d6d73b148b7a96ad93222dccfbb.jpg)
$data['first'] = array(array('lily', 'lucy'));
return view('result', $data)
在blade模板的代码:
@foreach($first as $value)
...
@endforeach
出错信息如下:
ErrorException in helpers.php line 454:
htmlentities() expects parameter 1 to be string, array given (View: /home/wwwroot/laravel/resources/views/result.blade.php)
如果
$data['last'] = array('lily', 'lucy');
return view('result', $last)
blade模板的$last就可以正常接收到数据。
难道laravel中并没传递多维数组的方法?还是我代码写的不对吗?
我看了文档,表述如下:
如果你想的话,还有一种方式就是直接在 view 辅助方法的第二个参数直接传递一个数组:
$view = view('greetings', $data);
如果你使用上面的方法来进行数据传参,
$data
必须是 键/值对应的数组数据, 这样在视图里面, 你可以使用对应的键来获取值, 如:{{ $key }}
会取得$data['$key']
对应的数据.
这并没有说到多维数组的情况。
回复内容:
在controller中使用view()方法向blade模板传递数组时出错。具体如下:
$data['first'] = array(array('lily', 'lucy'));
return view('result', $data)
在blade模板的代码:
@foreach($first as $value)
...
@endforeach
出错信息如下:
ErrorException in helpers.php line 454:
htmlentities() expects parameter 1 to be string, array given (View: /home/wwwroot/laravel/resources/views/result.blade.php)
如果
$data['last'] = array('lily', 'lucy');
return view('result', $last)
blade模板的$last就可以正常接收到数据。
难道laravel中并没传递多维数组的方法?还是我代码写的不对吗?
我看了文档,表述如下:
如果你想的话,还有一种方式就是直接在 view 辅助方法的第二个参数直接传递一个数组:
$view = view('greetings', $data);
如果你使用上面的方法来进行数据传参,
$data
必须是 键/值对应的数组数据, 这样在视图里面, 你可以使用对应的键来获取值, 如:{{ $key }}
会取得$data['$key']
对应的数据.
这并没有说到多维数组的情况。
首先很高兴,又有Laravel的问题。
然后说说我的想法:
其实报错信息是这样的:它并没有说你的多维数组没有传递过去,这个多维数组实际上已经传给result.blade.php了,只是你在foreach循环的时候可能出错了:
你可能是写成类似这样:
```
@foreach($first as $value)
{{ $value }}
@endforeach
```
其实应该是这样的:
```
@foreach($first as $value)
{{ $value[0] }}
@endforeach
```
因为这里的$value其实就是一个数组,而blade引擎解析{{}}的时候是不能直接输出数组的,blade希望{{}}这个里面是字符串。
所以问题不是你没有传过去,而是传过去了你没有正确输出,你可以试试这样调试一下:
```
@foreach($first as $value)
{{ dump($value) }}
@endforeach
```
Happy Hacking
是我弄错了。可以传,需要写with('last', $data),即专门指定last,自动识别的话,blade可以识别$data['first'],但后面的数组就不行了。
这么简单的问题。。。你都知道是二维数组了,一个foreach不够那来个不就可以了。。。想怎么输出就怎么输出,给你个例子:
@foreach($logs as $log)
@foreach($log as $k=>$v)
{{$k}}=>{{$v}};
@endforeach
@endforeach
内容总结
以上是互联网集市为您收集整理的laravel5如何向blade模板传递多维数组?全部内容,希望文章能够帮你解决laravel5如何向blade模板传递多维数组?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。