W Yii2 Próbuję zbudować ukryte moc wejściowayii2 ukryty wartość wejściowa
echo $form->field($model, 'hidden1')->hiddenInput()->label(false);
ale też trzeba to mieć jakąś wartość opcji, w jaki sposób można to zrobić?
W Yii2 Próbuję zbudować ukryte moc wejściowayii2 ukryty wartość wejściowa
echo $form->field($model, 'hidden1')->hiddenInput()->label(false);
ale też trzeba to mieć jakąś wartość opcji, w jaki sposób można to zrobić?
zmieniając wartość tutaj nie ma sensu, ponieważ jest aktywne pole. Oznacza to, że wartość zostanie zsynchronizowana z wartością modelu.
Wystarczy zmienić wartość $model->hidden1
, aby to zmienić. Lub zostanie zmieniony po otrzymaniu danych od użytkownika po przesłaniu formularza.
Przy użyciu non-aktywny ukryte wejście to będzie tak:
use yii\helpers\Html;
...
echo Html::hiddenInput('name', $value);
Ale ten ostatni jest bardziej odpowiedni do stosowania na zewnątrz modelu.
Można to zrobić za pomocą opcji
echo $form->field($model, 'hidden1',
['options' => ['value'=> 'your value'] ])->hiddenInput()->label(false);
Zmieni to tylko atrybuty HTML kontenera pola. Zobacz [tutaj] (http://www.yiiframework.com/doc-2.0/yii-widgets-activefield.html#$options-detail). – arogachev
można też zrobić to
$model->hidden1 = 'your value';// better put it on controller
$form->field($model, 'hidden1')->hiddenInput()->label(false);
ten jest lepszym rozwiązaniem, jeśli ustawić wartość na kontrolerze
$model = new SomeModelName();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->group_id]);
} else {
$model->hidden1 = 'your value';
return $this->render('create', [
'model' => $model,
]);
}
Jednym z dobrych sposobów na przypisanie dynamicznych wartości do wprowadzenia ukrytego pola. –
użyć następujących:
echo $form->field($model, 'hidden1')->hiddenInput(['value'=> $value])->label(false);
to działało dla mnie na Yii2. Dzięki! – MeV
prosty można napisać:
<?= $form->field($model, 'hidden1')->hiddenInput(['value'=>'abc value'])->label(false); ?>
Ta odpowiedź zadziałała. Używa on metody ActiveForm 'field()' zgodnie z pytaniem i dodatkowo poprawnie pokazuje jak określić wartość w metodzie 'hiddenInput()'. – russellfeeed
użyj tego -> Html :: activeHiddenInput ($ model, 'memid', ['value' => Yii :: $ app-> user-> identity-> id]); –
Dzięki stary świetna robota. –