2016-09-14 24 views
1

我可能是错的,但我确信这是Radios如何实现的方式。例如,没有可能的方式来为已发布和未发布的单选按钮设置默认值,因为您的模型中只有$发布,并且Phalcon不会按名称属性,例如 如果您有:如何在Phalcon Forms Element中实现单选按钮

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

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

请建议如果你有任何人有解决这个问题。

+0

这是常见的问题,同时实施的单选按钮 –

+0

这不是尔康3.0的问题。我只是试着复制你的代码片段。 (这两个单选按钮呈现) – Timothy

+0

可能是我使用不同版本的Phalcon,谢谢你的信息。 – yemanda

回答

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!"); 

那么,请问,我们如何渲染多个单选按钮?当然,我们需要这个尔康\ \表单元素\收音机,因为我们要重视validatrions,过滤器..

这里是我想出了解决方案:

 $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); 

希望这个解决方案会奏效。

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); 

```

相关问题