Yii $form->textfield, comment définir une valeur par défaut?
alors je joue avec le cadre Yii et dans une des vues, en particulier la forme create, j'essaye de donner à un de mes champs de texte une valeur par défaut. Donc quand je vais sur ma page créer les valeurs sont déjà préchargés sur le formulaire.
Voici mon code actuel
<div class="row">
<?php echo $form->labelEx($model,'teamlead'); ?>
<?php echo $form->textField($model,'teamlead',array('size'=>50,'maxlength'=>50,'value'=>Yii::app()->user->getUsername(),'disabled'=>'disabled')); ?>
<?php echo $form->error($model,'teamlead'); ?>
</div>
quand j'appuie sur create, Yii me donne une erreur me disant qu'il y a textField
est-il vide? Pas sûr de ce que je peux faire d'autre que de définir la valeur. Suis-je suppose que pour définir les attributs de modèle?
7 réponses
avant le champ description ajouter ceci:
<?php
$model->teamlead='my default value';
?>
Il fonctionne sur ma fin:
<?= $form->field($model, 'some_field')->textInput(['readonly' => true, 'value' => 'Your Value']) ?>
Toujours, c'est une bonne idée de traiter les données (défaut de valeurs, de modifier de quelque chose qui se passe, traitement de données, etc...) sur le modèle de la classe.
si vous obtenez la valeur d'après initialiser le modèle, la meilleure façon est d'utiliser la méthode init().
mais, si vous voulez changer, ou définir une valeur par défaut après charger des données de la base de données, vous pouvez utiliser la méthode afterFind ()
Par exemple:
public function afterFind(){
$this->localdate = date("Y-m-d");
parent::afterFind();
}
Ce lien a beaucoup de informations utiles sur ces méthodes:http://www.yiiframework.com/doc/guide/1.1/en/database.ar#customization
Voici mon code que j'envoie valeur fixe dans la base de données et montrer cette valeur en lecture seule.
<?php echo $form->textField($model,'pp_status', array('value'=>'Open', 'readonly' => 'true')); ?>
s'il vous Plaît utiliser array('readonly' => true)
au lieu de disabled
.
je crois que la façon MVC de faire ceci est de placer votre valeur par défaut soit dans votre Model:
class MyModel extends \yii\db\ActiveRecord
{
public $teamlead = 'my default value';
....
}
class MyModelController extends Controller
{
public function actionCreate()
{
$model = new MyModel ();
$model->teamlead = 'my default value';
...
}
}
<div class="row">
<?php echo $form->labelEx($model,'teamlead'); ?>
<?php echo $form->textField($model,'teamlead',array('readonly'=>'true',size'=>50,'maxlength'=>50,'value'=>Yii::app()->user->getUsername(),'disabled'=>'disabled')); ?>
<?php echo $form->error($model,'teamlead'); ?>
</div>
array('readonly'=>'true')
dans votre code, il travaillera