2016-09-14 60 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); 

```

相關問題