【问题标题】:Sending an array with compact to the view将紧凑的数组发送到视图
【发布时间】:2017-09-12 08:57:44
【问题描述】:

我有一个这样的数组:

$currentSelection = array('category' => $request->category, 'location' => $request->location);

当我将这个发送到这样的视图时:

return view('index', compact('currentSelection'));

我收到这条消息:

未定义的变量 currentSelection

如何使用 compact() 正确发送数组?

【问题讨论】:

  • 您确定$currentSelection 是在某个范围内定义的吗? compact will not issue warnings if it doesn't exist,很可能你的底层 view 函数正在窒息。
  • @Mark 你是对的,这确实是一个范围问题。我该如何结束这个问题?
  • 我已经标记了它。很高兴你解决了你的问题!

标签: php arrays laravel blade


【解决方案1】:

试试这个:

return view('index')->with(compact('currentSelection'));

return view('index', array('currentSelection' => $currentSelection)); // the second param is an array, you can pass multiple elements in this array

您可以在视图刀片视图中访问其值,例如:

{{ $currentSelection }}

注意:在你的情况下$currentSelectionarray,所以你必须使用foreach() 来获取它的所有元素

【讨论】:

  • 我也有一些其他对象,包含从 Laravel Eloquent 模型返回的结果,为了简单起见,我在这里忽略了它们。我想在不使用 with() 方法的情况下将它们与 $currentSelection 一起发送,并且只使用 compact(),这可能吗?
【解决方案2】:

请试试这个:

return view('index', compact(['currentSelection']));

【讨论】:

    【解决方案3】:

    你可以试试这个:

    return view('index', [
       'currentSelection' => $currentSelection,
    ]);
    

    希望这对你有用!

    【讨论】:

      【解决方案4】:

      试试

      return view('index', compact($currentSelection));
      

      根据艾森海姆的评论:

      修改为

      return view('index', compact('varname', $currentSelection));
      

      【讨论】:

      • 当我添加另一个变量时不起作用,如下所示:return view('index', compact('myNewVar', $currentSelection));
      猜你喜欢
      • 1970-01-01
      • 2013-09-15
      • 2015-10-17
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      相关资源
      最近更新 更多