Laravel - 如何将数组提取到变量并在刀片中使用它们
Posted
技术标签:
【中文标题】Laravel - 如何将数组提取到变量并在刀片中使用它们【英文标题】:Laravel - how to extract an array to variables and use them in blade 【发布时间】:2020-06-15 06:38:57 【问题描述】:我们可以在 laravel 视图中提取一个数组吗?
例如考虑这个:
我们已经说过需要将控制器中的 20 个变量传递给 blade,现在我们当然可以像这样使用 compact 传递这些变量:
return view('someview', compact('var_a', 'var_b', 'var_c', 'var_d' ....));
但是有没有办法我们可以移动数组中的所有变量,然后将其传递给刀片,然后以某种方式将其提取到刀片中,如下所示:
$data = array('var_a' => 'value', 'var_b' => 'value', 'var_c' => 'value', 'var_d' => 'value', );
return view('someview')->with($data);
然后像这样在刀片访问中:
$var_a $var_b $var_c
就像我们在 php 中有 extract()
函数一样,我只是想在刀片中使用它
我不想像这样访问索引:
$data['var_a']
我已经看到并受到 opencart 中使用的类似语法的启发
【问题讨论】:
【参考方案1】:是的,这很简单,你可以这样做
$data = ['var1' => 'value', 'var2' => 'value'];
然后
return view('someview', $data);
【讨论】:
【参考方案2】:你可以通过多种方式做到这一点,我会写两种方法来做到这一点
方式 1:
在控制器中:
$data = array('var_a' => 'hello', 'var_b' => 'bye', 'var_c' => 'ok');
return view('someview', compact('data'));
那么您必须使用extract()
PHP 内置函数(有关更多信息,请参阅此link)
然后在someview.blade.php
文件中添加如下代码:
@php
extract($data)
@endphp
<h1>$var_a</h1><br>
<h2>$var_b</h2><br>
<h3>$var_c</h3><br>
方式 2:
在控制器中:
$data = array('var_a' => 'hello', 'var_b' => 'bye', 'var_c' => 'ok');
return view('someview', $data);
你不必再做任何事情,Larval 自己会做第一种方式。
【讨论】:
【参考方案3】:这是您的简单解决方案
$data = array('var_a' => 'value of var_a', 'var_b' => 'value of var_b', 'var_c' => 'value of var_c', 'var_d' => 'value of var_d',);
return view('someview',$data);
在 Blade 中你可以访问
$var_a $var_b $var_c
【讨论】:
以上是关于Laravel - 如何将数组提取到变量并在刀片中使用它们的主要内容,如果未能解决你的问题,请参考以下文章
如何将视图中的数组传递给 ajax 并在 Laravel 5 的控制器中访问?
如何将数组数据从控制器发送到刀片并访问 javascript 变量中的数据