2016-01-02 47 views
0

我想發佈一個隱藏值與yii2活動窗體,但它沒有在我的數據庫表中定義。這就是該表中的活動記錄模型產生"Getting unknown property"錯誤的原因。發佈在yii2隱藏輸入問題

是否有任何方式來發布帶有活動表單的值,而不在數據庫表中定義它的字段,或者在活動記錄模型中定義它以僅發佈帶有表單的值?

這是我的形式:

<?php 

$form = ActiveForm::begin([ 
    'action' => ['twit/update-reply'], 
]); 
?> 
<?= $form->field($model,'twit')->textarea(['value' => $twit]); ?> 
<?= $form->field($model,'id')->hiddeninput(['value' => $id]); ?> 
<?= $form->field($model,'rid')->hiddeninput(['value' => $rid]); ?> 

<?= Html::SubmitButton('بروز رسانی',['class' => 'btn btn-success green']); ?> 

<?php ActiveForm::end(); ?> 

這種形式的輸入$form->field($model,'rid')在模型沒有被定義,並且使上述的錯誤。

我在做什麼錯?

+1

在你的模型中定義public $ rid; – kashan

回答

1

當您使用ActiveForm時,只能將Model屬性添加爲字段。爲了解決這個問題,你有兩個解決方案:

  • 在模型定義的屬性,
  • 發佈時不ActiveForm領域隱藏的輸入,如更換

    <?= $form->field($model,'id')->hiddeninput(['value' => $id]); ?> 
    

<input type="hidden" name="id" value="<?= $id ?>" /> 

ActiveForm a例如,如果你在你的模型上定義了一個屬性userEmail必須是電子郵件的規則,ActiveForm檢查你的規則userEmail有一個模式,如[email protected](更確切地說([A-Za-z0-9\_\-]+)@([A-Za-z0-9]+).([A-Za-z0-9\_\-]{2,3})例如),那麼如果您的模型是您的表格上的記錄的實例,ActiveForm將使用保存的值在您的HTML表單上填充您的字段。