我在application / classes / form.php中编写了form.php文件
<?php defined('SYSPATH') or die('No direct script access.');
class Form extends Kohana_Form {
public static function input($name, $value = NULL, array $attributes = NULL) {
// Set the input name
$attributes['name'] = $name;
// Set the input value
$attributes['value'] = $value;
if (!isset($attributes['id'])) {
$attributes['id']= $value;
}
if (!isset($attributes['type'])) {
// Default type is text
$attributes['type'] = 'text';
}
return '<input' . HTML::attributes($attributes) . ' />';
}
}
?>
当我使用form :: input时,这个函数正在调用,但它没有在元素上应用id属性。 我的代码有什么问题?
用法示例
echo form::input('date', $cd->year );
o / p
<input type="text" name="date">
答案 0 :(得分:2)
尝试了您的代码,它按预期工作。仔细检查$value
参数(在您的情况下为$cd->year
)是否不是NULL
。
HTML::attributes()
将跳过具有NULL
值的属性;您的自定义输入方法会添加一个等于value的id,因此如果value为NULL
,则id也将为,并且不会将其呈现为属性。
答案 1 :(得分:1)
试试这个;
class Form extends Kohana_Form {
public static function input($name, $value = NULL, array $attributes = NULL)
{
if ( empty($attributes['id']))
{
$attributes['id']= $name; // not value
}
return parent::input($name, $value, $attributes);
}
}