laravel刀片视图中的变量未定义错误
Posted
技术标签:
【中文标题】laravel刀片视图中的变量未定义错误【英文标题】:Variable undefined error in laravel blade view 【发布时间】:2017-02-08 21:29:44 【问题描述】:嘿,当我传递一个拥有自己的控制器的刀片视图时,我也将它包含到没有自己的控制器的视图中。它给了我一个未定义的变量错误,任何人都可以帮我解决它。
我有一个没有任何控制器的视图,只有像这样的路由Route::get('index', function () return view('index'); );
在这个视图中,我正在传递另一个视图,它有自己的控制器,也有一些来自数组的数据。但在视图中使用此视图后,我得到未定义的变量错误。
【问题讨论】:
清楚地解释问题..你想要什么..?? 我有一个没有任何控制器的视图只有这样的路由 Route::get('index', function () return view('index'); );在这个视图中,我正在传递另一个视图,该视图具有自己的控制器并且还具有来自数组的一些数据。但在视图中使用此视图后,我得到未定义的变量错误 您需要传递变量才能查看 我正在通过他们 【参考方案1】:public function returnTwoViews()
$variable = 'foo bar';
$innerView = view('inner.view', ['variable' => $variable]);
return view('wrapper.view, ['innerView' => $innerView]);
这可能就是您要找的东西?
...在您的 wrapper.view 模板中:
!! $innerView !!
编辑:回答评论中的问题:为了获取您在$innerView
视图中执行此操作的每一行:
@foreach($variable as $item)
$item
@endforeach
...在包装视图中它仍然是!! $innerView !!
【讨论】:
感谢它非常有效......如果我有一个 $variable 数组怎么办。那么我将如何在我的包装视图中获取。 我已经编辑了原始响应,因为我需要为此案例添加更多代码。【参考方案2】:你可以试试这个:
public function indexYourViews()
$test = "Test Views";
$secondViews = view('second',compact('test'));
return view('firstview',compact('secondViews'));
然后在你的主视图文件(firstview)中声明$secondViews
。
希望对你有所帮助。
【讨论】:
【参考方案3】:两步:
从Controller函数声明并传输$variable到View。
public function index()
return view("index", [ "variable" => $variable ]);
指示从 Controller 传输的 $variable 出现在 view.blade.php 中的位置。
$variable
如果你不确定,$variable 是否被转移
isset($variable) ? $variable : ''
【讨论】:
【参考方案4】:如果这对任何人都有帮助,我完全不知道我的路由没有与相应的控制器函数挂钩,而是直接返回视图,从而导致了这个问题。花了整整半个小时敲我的头,直到我意识到这个错误。
编辑
这里再次强调另一个错误。确保你正确地传递了你的数组。我在做['key', 'value]
而不是['key' => 'value']
并遇到了这个问题。
【讨论】:
以上是关于laravel刀片视图中的变量未定义错误的主要内容,如果未能解决你的问题,请参考以下文章
尝试在 Laravel 7 中查看不同内容时,刀片视图上的 ErrorException 未定义变量