php - form - yii2 html a style
Yii errores de modelo personalizados (2)
Estoy guardando una instancia de modelo que realiza algunas acciones en la función de modelo "beforeSave".
Quiero agregar algunos errores / mensajes al modelo y luego ponerlos en el controlador y mostrarlos al usuario.
Hasta donde tengo dos ideas de cómo implementar esto:
- Use un atributo ficticio con la función ActiveRecord
"addError": $this->addError("dummy"=>"my message");
No es la mejor manera de hacerlo ya que tendré que inventar nuevos atributos ficticios. - Agregue una nueva propiedad "custom_errors" al modelo y la función "addCustomErrors"
¿Tal vez hay una forma integrada de hacerlo o una extensión?
De todos modos, ¿cómo puedo hacerlo?
No veo el problema aquí. Simplemente use addError () http://www.yiiframework.com/doc/api/1.1/CModel#addError-detail . El modelo se mantiene incluso después de invocar save()
en él, por lo que podría hacer algo como
yourController()
{
do_something();
do_something();
$model->save();
$errors[]=do_what_you_have_to_do_to_define_the_errors_which_will_be_added();
$model->addError(attribute, $errors);
$this->render(viewWhereTheErrorWillBeDisplayed, $model);
}
Puede usar addError () pero no es necesario crear atributos falsos. Si un error no se relaciona con nada en el modelo en sí, entonces estás haciendo algo mal: p
Entonces en tu caso sería algo así como:
$this->addError(''file'', ''Something happened I wasn/'t pleased with'');
Si hay otros errores en el atributo del file
se acumularán, por lo que no tendrá que preocuparse por la sobreescritura.