因为我要用JS赋值给fileFiled,但是fileFiled本身是不能赋值的,但我发现在fileFiled之前有一个hiddenFiled
public static function activeFileField($model,$attribute,$htmlOptions=array())
{
self::resolveNameID($model,$attribute,$htmlOptions);
// add a hidden field so that if a model only has a file field, we can
// still use isset($_POST[$modelClass]) to detect if the input is submitted
$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
return self::hiddenField($htmlOptions['name'],'',$hiddenOptions)
. self::activeInputField('file',$model,$attribute,$htmlOptions);
}
因为hiddneField和FildFiled的name是相同的,所以在控制器都可以接受,如果hiddenField能记录已经存在的值该多好啊,这样我在修改记录的时候,就很方便了,如果filefield有值的话,就用新值代替,没有的话,就用hiddenFiled的值,但是我看了源码,感觉似乎这个hiddenField是个摆设,根本没起到作用!
return self::hiddenField($htmlOptions['name'],'',$hiddenOptions)
如果把这一行改成:
return self::hiddenField($htmlOptions['name'],$model->$attribute,$hiddenOptions)
这样就可以让hiddenFiled起到作用了,不知道大家怎么理解这个问题?