在我的CodeIgniter模型中,其中一个字段是租赁开始和租赁端,用于设置属性租约的范围。我目前有类似下面的内容。什么是在日期时间设置规则的语法?或者只是约会的日期。
public $rules = array(
'unitnum' => array(
'field' => 'unitnum',
'label' => 'UnitNum',
'rules' => 'trim|required|numeric|xss_clean'
),
'rent' => array(
'field' => 'rent',
'label' => 'Rent',
'rules' => 'trim|required|numeric|greater_than[0]|xss_clean'
),
'leasestart' => array(
'field' => 'leasestart',
'label' => 'LeaseStart',
'rules' => 'trim|required|????|xss_clean'
),
'leaseend' => array(
'field' => 'leaseend',
'label' => 'LeaseEnd',
'rules' => 'trim|required|????|xss_clean'
),
);
答案 0 :(得分:0)
不幸的是,codeigniter没有日期时间规则。你必须使用回调。
编辑:此外,您还需要在租约结束或租约开始时指定回调,因为它会以任一方式检查这两个值。
public $rules = array(
'unitnum' => array(
'field' => 'unitnum',
'label' => 'UnitNum',
'rules' => 'trim|required|numeric|xss_clean'
),
'rent' => array(
'field' => 'rent',
'label' => 'Rent',
'rules' => 'trim|required|numeric|greater_than[0]|xss_clean'
),
'leasestart' => array(
'field' => 'leasestart',
'label' => 'LeaseStart',
'rules' => 'trim|required|callback__check_lease|xss_clean'
),
'leaseend' => array(
'field' => 'leaseend',
'label' => 'LeaseEnd',
'rules' => 'trim|required|xss_clean'
),
);
您的功能可能如下所示,但请记住您的日期格式,以便您可以使用strtotime()
。
function _check_lease($lease_start){
$lease_start = strtotime($lease_start);
$lease_end = strtotime($this->input->post('leasestart'));
if($lease_start > $lease_end){
$this->form_validation->set_message('_check_lease', 'Invalid range, lease time cannot be greater than lease end.');
return false;
}
return true;
}