Laravel Blade视图中的变量未定义错误

7

嘿,因为我传递了一个带有自己的控制器的blade视图,并将其包含在没有自己控制器的视图中。这会导致未定义变量错误,有人可以帮我解决吗?

我有一个视图,没有任何控制器,只有像这样的路由Route :: get('index',function(){return view('index'); }); 在这个视图中,我传递了另一个带有自己的控制器并从数组中获取一些数据的视图。但是,在将此视图用于视图后,我会收到未定义变量错误。


请清楚地解释问题,你想要什么? - Kumar Rakesh
我有一个视图,它没有任何控制器,只有像这样的路由 Route::get('index', function () { return view('index'); }); 在这个视图中,我传递了另一个视图,它有自己的控制器,并且从一个数组中获取一些数据。但是在将此视图用于视图后,我会收到未定义变量错误。 - Priyank lohan
你需要将变量传递到视图中。 - Komal
我正在传递它们。 - Priyank lohan
4个回答

26

两个步骤:

  1. Controller 函数中声明并传递 $variable 到视图。

  2.  public function index()
     {
      return view("index", [ "variable" => $variable ]);
     }
    
  3. 指示从控制器传递的$variableview.blade.php中出现的位置。

  4.  {{ $variable }}
    

如果您不确定 $variable 是否被传递

{{ isset($variable) ? $variable : '' }}

4
如果有人需要帮助,我想说一下,我完全不知道我的路由没有与相应的控制器函数连接,并直接返回视图,从而导致了这个问题。花了半个小时才意识到这个错误。
编辑:
在这里强调另一个错误。确保正确传递数组。我之前使用的是 ['key', 'value'] 而不是 ['key' => 'value'],从而导致了这个问题。

0
你可以尝试这个:
 public function indexYourViews()
  { 
    $test = "Test Views";
    $secondViews = view('second',compact('test'));

     return view('firstview',compact('secondViews'));
   }

在你的主视图文件(firstview)中声明{{$secondViews}}之后。

希望这能帮到你。


-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数组,那么我该如何在我的包装器视图中获取它们? - Priyank lohan
我已编辑原回复,因为我需要包含更多的代码来处理这种情况。 - renov8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接