我正在构建一个从数据库中读取关键字列表的表单。 模型很简单:每个用户在数据库中都有不同的关键字,所以我不知道它们的数量。
在表单中,我希望使用复选框列表呈现所有用户的关联关键字,以便用户可以决定在特殊组中保存哪个关键字。 当然我想渲染关键字的名称,但我想获得" id"它的。
我找不到任何关于此的文档。我刚刚找到了典型的:
$keywords = new Check('keywords', array(
'value' => '1'
));
$keywords->setLabel('Keywords');
$this->add($keywords);
放入表格,但没用。在我写的视图中
<div class="control-group">
{{ form.label('keywords', ['class': 'control-label']) }}
<div class="controls">
{{ form.render('keywords', ['class': 'form-control']) }}
</div>
</div>
我看到一个复选框(值为1)。我想解决方案应该像SELECT(我在另一种形式中使用)。类似的东西:
$idkeyword = new Select('keyword',
Keyword::find($string), [
"useEmpty" => true,
"emptyText" => "Por favor selecciona...",
"using" => ["idkeyword", "trackeable"],
]);
$idkeyword->setLabel('Keyword');
$idkeyword->addValidators(array(
new PresenceOf(array(
'message' => 'idkeyword requerida'
))
));
$this->add($idkeyword);
在视图中,我希望有类似的内容:
<input type="checkbox" name="chk_group" value="1" />Keyword 1<br />
<input type="checkbox" name="chk_group" value="2" />Keyword 2<br />
<input type="checkbox" name="chk_group" value="3" />Keyword 3<br />
当&#34;关键字X&#34;在数据库和&#34; X&#34;是它的身份。
我很乐意听到任何帮助。我希望我的问题得到很好的阐述。如果没有,我会接受所有评论。感谢。
答案 0 :(得分:1)
Phalcon\Forms\Element\Check
适用于单个复选框,因此如果您想将其用于多个复选框,则必须编写循环:
// You should get these options from the database
$options = [1 => 'Keyword 1', 2 => 'Keyword 2', 3 => 'Keyword 3'];
foreach($options as $key => $value)
{
// Create a checkbox for each option
$keywords = new Check('keywords'.$key, [
'name' => 'chk_group',
'class' => 'form-control',
'value' => $value
]);
// Create a label for each option so the user can click on this
$keywords->setLabel($value);
$this->add($keywords);
}
然后在视图中:
{% for element in form %}
{{ element.label(['class': 'control-label']) }}
{{ element.render() }}
{% endfor %}