如何在Phalcon \ Forms \ Element中实现单选按钮

时间:2016-09-14 06:03:02

标签: radio-button phalcon radio

我可能错了,但我确信这是Radios的实施方式。没有可能的方法,例如,“已发布”和“未发布”的单选按钮默认设置其值,因为您的模型中只发布了$,并且Phalcon不会通过名称属性,  例如如果你有:

$this->add(new Radio('published', array('name' => 'published', 'value' => 'Y')));
$this->add(new Radio('not_published', array('name' => 'published', 'value' => 'N')));

仅渲染最后一个单选按钮。这不是你期望收音机的行为!显然我们不能将这两个无线电都命名为'已发布',因为Phalcon不知道我们推荐哪一个,并且Phalcon仍会使用这些名称来尝试获取默认值。

请建议如果你有任何人有解决方案,请注意这一点。

2 个答案:

答案 0 :(得分:2)

我面临同样的问题,我确信每个人都面临同样的问题。看来它根本不可用。我希望有人会证明我错了,但我不知道如何制作一组两个相关的单选按钮。

//将只渲染无广播,因为它是名称的最后一个元素"已发布"?

use Phalcon\Forms\Element\Radio;

$yes = new Radio("published", array("id" => "myYes", "value" => 1));
$yes->setLabel("YES!");

$no = new Radio("published", array("id" => "myNo", "value" => 2));
$no->setLabel("NO!");

那么,请问,我们如何渲染多个单选按钮?当然我们需要这个Phalcon \ Forms \ Element \ Radio,因为我们想附加有效的过滤器,过滤器......

这是我带来的解决方案:

        $attr = array(
            'name' => 'published'
        );
        $yes = new \Phalcon\Forms\Element\Radio("Yes", $attr);
        $no = new \Phalcon\Forms\Element\Radio("No", $attr);

        $this->add($yes);
        $this->add($no);

希望这个解决方案能够运作。

答案 1 :(得分:0)

我将此用于我的代码,因为它们无法修复phalcon问题。

```

    $attr = ['value' => Employee::GENDER_MALE, 'name' => 'gender'];
    if (!empty($entity) && $entity->getGender() == Employee::GENDER_MALE || $this->request->getPost('gender') == Employee::GENDER_MALE) {
        $attr += ['checked' => 'checked'];
    }
    $el = new Radio('genderMale', $attr);
    $el->setLabel(t('Male'));
    $this->add($el);

    $attr = ['value' => Employee::GENDER_FEMALE, 'name' => 'gender'];
    if (!empty($entity) && $entity->getGender() == Employee::GENDER_FEMALE || $this->request->getPost('gender') == Employee::GENDER_FEMALE) {
        $attr += ['checked' => 'checked'];
    }
    $el = new Radio('genderFemale', $attr);
    $el->setLabel(t('Female'));
    $this->add($el);

```