所以我正在摆弄Yii框架,在其中一个视图中,特别是在create表单中,我试图给予我的一个文本字段一个默认值。因此,当我进入create页面时,这些值已经预先加载到表单中了。
这是我目前的代码
<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
是空的?除了设置值,我不确定还能做什么。我是否也应该设置模型属性?
7条答案
按热度按时间fv2wmkja1#
它在我这边起作用:
cld4siwp2#
在字段描述之前添加以下内容:
myzjeezk3#
这是我的代码,我发送固定值到数据库,并显示该值只读。
tzxcd3kk4#
在模型类上处理数据(默认值、发生某些事情后的更改、数据处理等)始终是一个好主意。
如果你在初始化模型后从中获取值,最好的方法是使用init()方法。
但是,如果你想改变,或者定义一个缺省值后从数据库中装载数据,你可以使用方法afterFind()
例如:
此链接提供了有关这些方法的大量有用信息:http://www.yiiframework.com/doc/guide/1.1/en/database.ar#customization
62lalag45#
请使用
array('readonly' => true)
而不是disabled
。ijnw1ujt6#
我相信MVC的方法是将默认值放置在Model中:
或者在控制器中:
zujrkrfu7#
把
array('readonly'=>'true')
放进你的代码里,它就会工作