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 刀片模板中的覆盖部分抛出未定义的变量错误

尝试在 Laravel 7 中查看不同内容时,刀片视图上的 ErrorException 未定义变量

重定向后刀片中的未定义变量

使用 route() 时 Laravel 刀片“未定义变量”错误

在刀片 laravel 中定义变量

Laravel 8:将刀片加载到另一个刀片时未定义的变量