Laravel 5:如何从控制器传递单个变量并在Blade视图中接收?
Laravel Blade视图接收控制器传递变量的问题解决
嘿,我来帮你搞定这个变量接收的问题!先还原下你的场景:
你在Laravel 5控制器里是这么传递变量的:
$data['getId'] = $id; // 比如$id的值是12 return view('Administrator.notification.index', $data);
但在Blade视图里用{{getId}}的时候,出现了这个错误:
Use of undefined constant getId - assumed 'getId'
正确的接收方式其实很简单:
你只需要在视图里给变量名加上**美元符号$**就行,也就是写成:
{{ $getId }}
为什么原来的写法会报错?
因为在PHP里,直接写getId会被解释成一个常量,而你并没有定义过这个常量,所以就抛出了“未定义常量”的错误。加上$之后,PHP才会把它识别成视图里的变量,和你在控制器里传递的$data['getId']对应上。
顺便给你补充几种更简洁的变量传递方式:
- 使用
compact函数,直接传递变量名:
return view('Administrator.notification.index', compact('id'));
这时视图里直接用{{ $id }}就能拿到值。
- 使用
with方法链式传递:
return view('Administrator.notification.index')->with('getId', $id);
这种方式下,视图里同样用{{ $getId }}来接收。
内容的提问来源于stack exchange,提问作者Niladri Banerjee - Uttarpara
相关产品推荐
相关产品推荐

