kohana验证rules用法

来源:互联网 发布:林宥嘉的歌 知乎 编辑:程序博客网 时间:2024/06/10 14:10
view:

<form id="vlcform" method="post" action="add">

<fieldset>
<input type="hidden" id="id" name="id" value="0" class="half title" />
<p>
<label class="" for="firstname">服务名:</label><br/>
<input type="text" id="_name" name="name" value="<?php echo Arr::get($values, 'name'); ?>" class="half title" />
<?= Arr::get($errors, 'name'); ?>
<small></small>
</p>

<p>
<label class="" for="firstname">描述:</label><br/>
<input type="text" id="_description" value="<?php echo Arr::get($values, 'description'); ?>" name="description" class="half title" />
<?= Arr::get($errors, 'description'); ?>
<small></small>
</p>





<p class="box"><input type="submit" id='submit_btn' class="btn btn-green big" value="保存"/> or <input type="reset" class="btn" value="重置"/></p>

</fieldset>

</form>



controller:

function action_add()
{
//Session::instance()->flashdata('aa');

$view = View::factory("mac/add")
//因为这里set设置了'values'变量值为$_POST,所以view里可以Arr:get($value,'name')获取上次提交的
->set('values', $_POST)
//因为这里set设置了'errors'变量值为$errors,所以view里可以Arr:get($errors,'name')获取上次错误值
->bind('errors', $errors);
if($_POST)
{
$service = ORM::factory('servicetest')
//注意是values
->values($_POST,
array(
'name',
'description'));

try
{
$service->save();
$this->request->redirect('http://www.baidu.com');
}
catch(ORM_Validation_Exception $e)
{
$errors = $e->errors('models');
}
}

$this->response->body($view);
}


model:

class Model_Servicetest extends ORM{
protected $_table_name = 'servicetest';

//验证规则
function rules()
{
return array(
'name'=> array(
array('not_empty'),
array('max_length', array(':value','5'))
),
'description'=> array(
array('not_empty'),
array('max_length', array(':value','5'))
)
);
}

}


原创粉丝点击