Twig - 循环 returns 只有 1 个结果
Twig - Loop returns only 1 result
我正在尝试在 php 中使用 twig 并在此循环内进行循环,
我正在创建一个参数,其中包含来自数据库查询的记录。
问题是,当我在 HTML 文件中使用参数时,while 循环中只有 return 1 条记录,即使有 3 条或 4 条甚至更多..
这是我的 php 代码:
public function getWidgetsByName($name)
{
global $params;
$get = $this->db->query("SELECT * FROM profile_items
WHERE category = 'widget'
AND username = '". $name ."'");
if($get)
{
while($key = $get->fetch())
{
$params["profile_widget_name"] = $key['name'];
}
}
}
这是我的 HTML twig 渲染文件中的 HTML 参数:
{{ profile_widget_name }}
参数按照应有的方式呈现:
echo $twig->render('app/views/'. $_REQUEST['p'] .'.html', $params);
是的,$params 变量是一个数组,在它的配置文件中,它首先被用作 $params = array("..." => "...");然后我通过 $params["..."] = "...";
向这个数组添加东西
所以,我希望有人能帮助我。
提前致谢,
最好的问候。
目前,$params["profile_widget_name"]
的值只是一个字符串。每次执行 while
循环时,都会用当前值覆盖键的先前值。
所以当你把$params
传给Twig时,profile_widget_name
的值就是要选择的数据库最后一行name
的值
我想你想要的是 profile_widget_name
的值是一个数组。然后每次执行循环时,name
的当前值都会添加到数组中,而不是覆盖它。
您可以通过执行以下操作来做到这一点:
$params["profile_widget_names"][] = $key['name'];
现在在您的 Twig 模板中,您需要执行如下操作:
{% for profile_widget_name in profile_widget_names %}
{{ profile_widget_name }}
{% endfor %}
使用多个参数
如果你想要多个参数在那里,你可以这样做:
$params["profile_widgets"][] = [
'pos_x' => $key['pos_x'],
'name' => $key['name'],
];
在 Twig 中:
{% for profile_widget in profile_widgets %}
Name: {{ profile_widget.name }}
Pos X: {{ profile_widget.pos_x }}
{% endfor %}
我正在尝试在 php 中使用 twig 并在此循环内进行循环, 我正在创建一个参数,其中包含来自数据库查询的记录。
问题是,当我在 HTML 文件中使用参数时,while 循环中只有 return 1 条记录,即使有 3 条或 4 条甚至更多..
这是我的 php 代码:
public function getWidgetsByName($name)
{
global $params;
$get = $this->db->query("SELECT * FROM profile_items
WHERE category = 'widget'
AND username = '". $name ."'");
if($get)
{
while($key = $get->fetch())
{
$params["profile_widget_name"] = $key['name'];
}
}
}
这是我的 HTML twig 渲染文件中的 HTML 参数:
{{ profile_widget_name }}
参数按照应有的方式呈现:
echo $twig->render('app/views/'. $_REQUEST['p'] .'.html', $params);
是的,$params 变量是一个数组,在它的配置文件中,它首先被用作 $params = array("..." => "...");然后我通过 $params["..."] = "...";
向这个数组添加东西所以,我希望有人能帮助我。
提前致谢, 最好的问候。
目前,$params["profile_widget_name"]
的值只是一个字符串。每次执行 while
循环时,都会用当前值覆盖键的先前值。
所以当你把$params
传给Twig时,profile_widget_name
的值就是要选择的数据库最后一行name
的值
我想你想要的是 profile_widget_name
的值是一个数组。然后每次执行循环时,name
的当前值都会添加到数组中,而不是覆盖它。
您可以通过执行以下操作来做到这一点:
$params["profile_widget_names"][] = $key['name'];
现在在您的 Twig 模板中,您需要执行如下操作:
{% for profile_widget_name in profile_widget_names %}
{{ profile_widget_name }}
{% endfor %}
使用多个参数
如果你想要多个参数在那里,你可以这样做:
$params["profile_widgets"][] = [
'pos_x' => $key['pos_x'],
'name' => $key['name'],
];
在 Twig 中:
{% for profile_widget in profile_widgets %}
Name: {{ profile_widget.name }}
Pos X: {{ profile_widget.pos_x }}
{% endfor %}