style form example dropdownlist php yii

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.