Yii $ form-> textfield,如何设置默认值?

时间:2012-08-23 16:26:55

标签: yii

所以我正在摆弄Yii框架,在其中一个视图中,特别是创建表单,我试图给我的一个文本字段一个默认值。因此,当我进入我的创建页面时,值已经预先加载到表单上。

这是我当前的代码

<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>

当我按下创建时,Yii给我一个错误,告诉我textField是空的?除了设置值之外,我不知道还能做什么。我还想设置模型属性吗?

7 个答案:

答案 0 :(得分:18)

在字段说明之前添加:

<?php
$model->teamlead='my default value';
?>

答案 1 :(得分:16)

它适用于我:

<?= $form->field($model, 'some_field')->textInput(['readonly' => true, 'value' => 'Your Value']) ?>

答案 2 :(得分:5)

总是,在模型类上处理数据(默认值,发生事件后的更改,数据处理等)是一个好主意。

如果从初始化模型后获取值,最好的方法是使用方法init()。

但是,如果要在从数据库加载数据后更改或定义默认值,则可以使用方法afterFind()

例如:

public function afterFind(){
    $this->localdate = date("Y-m-d");
    parent::afterFind();
}

此链接提供了许多有关这些方法的有用信息:http://www.yiiframework.com/doc/guide/1.1/en/database.ar#customization

答案 3 :(得分:4)

请使用array('readonly' => true)代替disabled

答案 4 :(得分:4)

这是我的代码,我将固定值发送到数据库并显示该值只读。

<?php echo $form->textField($model,'pp_status', array('value'=>'Open', 'readonly' => 'true')); ?>

答案 5 :(得分:1)

我相信MVC的方法是将默认值放在模型中:

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';
        ...
    }
}

答案 6 :(得分:-1)

<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')放入您的编码中