Laravel Custom Validation Class正确获取参数值

时间:2015-02-03 03:47:56

标签: php laravel laravel-4

我有一个类检查两个日期并查看该值是否大于或等于第二个参数。我的问题是 - 你如何正确地从第二个字段中获取值我已经使用了Input :: get($ value_to_compare),我认为这实际上不是正确的方法。

class CoreValidator extends Illuminate\Validation\Validator {

protected function validateDateLessThanOrEqualTo($attribute, $value, $parameters)
{

    /*
     * If a input with the name equal to the value we compare with, we
     * use it, otherwise we proceed as usual
     */

    if( isset( $this->attributes[ $parameters[0] ] ) )
    {

      $value_to_compare = $this->attributes[ $parameters[0] ];

    }//if we have an input with this name
    else
    {

        $value_to_compare = $parameters[0];

    }//we compare with the provided value



    return ( date_parse( $value ) <= date_parse( Input::get($value_to_compare) ) );

}   

protected function replaceDateLessThanOrEqualTo($message, $attribute, $rule, $parameters)
{


    return str_replace(':other', ucwords(str_replace('_', ' ', $parameters[0])), $message);

}
}

1 个答案:

答案 0 :(得分:1)

您可以使用验证程序对象上的成员变量$data来获取其他属性的值:

return ( date_parse( $value ) <= date_parse( $this->data[$value_to_compare] ) );