我有一个自定义验证规则,当我从Validator::make
方法调用该规则时,该规则未激活。我的商店功能如下:
public function store(Request $request, $productor, $proveedor, $tipo, $formula)
{
$c1 = $request->input('1');
$c2 = $request->input('2');
$c3 = $request->input('3');
$c4 = $request->input('4');
$validator = Validator::make($request->all(), ['evaluacion' => new PasoEvaluacion($c1, $c2, $c3, $c4)]);
if ($validator->fails()){
return Redirect::action('CompletarEvaluacionController@index',[$productor, $proveedor, $tipo, $formula])->withErrors($validator);
}
}
c1, c2, c3, c4
不是要存储在数据库中的值,而是它们的总和,它们将被称为evaluacion
,因此evaluacion
本身不是用户的输入。 / p>
我的规则如下
class PasoEvaluacion implements Rule
{
/**
* Create a new rule instance.
*
* @return void
*/
public $ponderacion_uno;
public $ponderacion_dos;
public $ponderacion_tres;
public $exito;
public function __construct($ponderacion_uno, $ponderacion_dos, $ponderacion_tres, $exito)
{
$this->ponderacion_uno = $ponderacion_uno;
$this->ponderacion_dos = $ponderacion_dos;
$this->ponderacion_tres = $ponderacion_tres;
$this->exito = $exito;
}
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
Log::info('here');
if ($this->ponderacion_uno + $this->ponderacion_dos + $this->ponderacion_tres >= $this->exito){
return true;
}
else return false;
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return 'Criterio reprobado';
}
}
这个问题是,似乎甚至没有达到new PasoEvaluacion
规则,因为当我检查日志时它什么也没打印,有没有办法做到这一点?