Yii 亿元表格->;textfield,如何设置默认值?

Yii 亿元表格->;textfield,如何设置默认值?,yii,Yii,因此,我正在摆弄Yii框架,在其中一个视图中,特别是在create表单中,我试图为我的一个textfields提供一个默认值。因此,当我进入我的创建页面时,这些值已经预先加载到表单上 这是我的当前代码 <div class="row"> <?php echo $form->labelEx($model,'teamlead'); ?> <?php echo $form->textField($model,'teamlead',array('

因此,我正在摆弄Yii框架,在其中一个视图中,特别是在create表单中,我试图为我的一个textfields提供一个默认值。因此,当我进入我的创建页面时,这些值已经预先加载到表单上

这是我的当前代码

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


当我按下create时,Yii给我一个错误,告诉我那里的
textField
是空的?不确定除了设置值之外我还能做什么。我是否也要设置模型属性?

在您添加字段描述之前:

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

始终是处理模型类上的数据(默认值、发生事件后的更改、数据处理等)的好主意

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

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

例如:

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

这个链接有很多关于这些方法的有用信息:

请使用
数组('readonly'=>true)
而不是
禁用的

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

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

它在我这边有效:

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



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

所以我把这行放在div?Nevermind之前,我修正了它,但是我必须在控制器中设置默认值。更具体地说,在create函数中。有什么方法可以在视图中设置它吗?只需在视图中设置$model变量的值,该变量位于要输出的字段的上方。或者,您可以在模型的
init()
function中将该值设置为默认值。默认值应该是模型区域-在视图中更改该值会破坏MVC模式。这样做不是一个好主意。字段将始终具有此值,如果您想通过此表单更新模型,您将始终看到“您的值”,而不是模型的值。@NikolayTraykov是的,但它可能类似于
,谢谢你们的建议。我已经更新了适合创建和更新操作的答案。
class MyModelController extends Controller
{
    public function actionCreate()
    {
        $model = new MyModel ();
        $model->teamlead = 'my default value';
        ...
    }
}