2015-05-06 10 views
5

Yii2 ActiveForm onay kutusu denetimi için "işaretli" durum için basit bir çözüm arıyorum ve nasıl ayarlanacağına dair bir çözüm bulamıyorum. Belgelerdeki örnekleri bulamıyorum.Yii2'nin ActiveForm onay kutusu nasıl denetlenir?

Ben render kodu

<?= $form->field($model, 'name')->checkbox()->label('Hi'); ?> 

işlemek için denedim Ama ben ActiveForm kendisi değiştirmeniz gerekir gibi görünüyor. Onay kutusu varsayılan olarak nasıl işaretlenir?

cevap

3

Tamam, bir süre debbuged ve bir çözüm buldum, bu O modelin varsayılan değeri için denetler() fonksiyonu

$checked = "$value" === "{$options['value']}"; 

activeCheckbox hat 1359 at BaseHtml.php bağırsaklarından yatıyor değişken:

class SomeForm extends Model 
{ 
    public $name = true; 

Ve (aynı tip) aynı değeri

<?= $form->field($model, 'name')->checkbox(['value' => true])->label('Hi'); ?> 
yılında 'değer' seçeneğine atanmalıdır 0

Böyle önemsiz bir özellik için aşırı karmaşık olduğunu söyleyebilirim.

0

bakın, benim kodunda status 0 veya 1

Yani, kontrol onay kutusu için. Ben Örneğin <?php $model->status = 1; ?>

<?php $model->status = 1; ?> 
<?= $form->field($model, 'status')->checkbox()->label('Hi'); ?> 

, araçlar bölümündeki adını yani 2 değerleri yaşıyorsanız beyan olduğunu PHP veya Java. Bunun zarif değil biliyorum

if ($model->isNewRecord) { 
    $model->status = TRUE; 
} 

: Ben görünümünde böyle bir şey yapmak oluşturmak üzerinde işaretli onay kutusunu olmasını istiyorsanız Sonra, checked

//Your Code 

<?php $model->name = 'Java'; ?> 
<?= $form->field($model, 'name')->checkbox()->label('Hi'); ?> 
+1

Lütfen bana reddedilme nedenini söyle. Düşen kişi, sisteminizde denediniz mi? Bazı insanlar sadece downvote için SO'ya gelir. Eğer düşünürseniz, bu cevap yararlı değildir, lütfen sebep/öneri verin. ** Basitçe Düşürmeyin ** –

1

olarak Java almak için <?php $model->name = 'Java'; ?> olarak ilan Çözüm, ama çalışıyor.