我是PHP框架Laravel的新手(我使用的是5.8版(,我想从视图中转储控制器的所有变量。这可能吗?
感谢您的帮助:)
Laravel内部使用一个$__data
数组,其中包含所有可用变量(包括与所有视图共享的变量(。
此外,它还包含IlluminateFoundationApplication
的实例(如$__data['app']
(和IlluminateViewFactory
的实例(如$_data['__env']
(。
您可以使用IlluminateSupportArr::except($__data, ['app', '__env'])
过滤掉这些内容。
但是您不应该依赖它,因为它是一个内部变量,可能会在没有任何警告的情况下在未来更新中更改。
您可以使用
{{ dump($variable); }}
或
@php dump($variable); @endphp
更新
列出Laravel视图中的所有已注册变量
{{ dump(get_defined_vars()['__data']) }}
参见参考资料
首先,您应该将变量从控制器传递到视图。最好的方法是在返回视图的第二个参数中使用compact
,如下所示:
return view("viewName",compact("variable1","variable2",...));
请注意,在紧凑中只使用变量名而不带$
符号。
传递变量以查看后,您可以在每个您喜欢查看变量的地方使用{{dd($variable1)}}
或{{echo($variable1)}}
(例如(。
dd()
不允许调试剩余的代码并为show变量die程序,它更适合调试。但echo()
适用于发布版本。