Estoy tratando de almacenar en caché las llamadas a la base de datos para la validación de Yii2 existe, pero no puedo averiguar dónde iniciarlo.

Debido a que estoy usando un formulario de varios modelos con muchas relaciones, la sobrecarga es demasiado.

¿Alguna idea?

-1
Tom Horwood 13 nov. 2017 a las 01:51

2 respuestas

La mejor respuesta

Esto no es compatible con Yii, o tienes que:

  • Amplíe el ExistValidator e implemente su lógica de almacenamiento en caché allí
  • Agregue una clase ActiveQuery personalizada a su modelo en cuestión y anule los métodos exists() y count()
1
Nader 13 nov. 2017 a las 06:38

No creo que debas. En realidad, hay un problema en el proyecto oficial de Github de Yii2 donde uno de los desarrolladores principales del framework , Alexander Makarov, también conocido como @samdark, explica por qué almacenar en caché ExistValidator es una mala idea:

La validación existente no es el tipo de validación que se debe almacenar en caché. Cada segunda base de datos puede cambiar su estado, por lo que debe validarse justo antes de guardarla.

2
Yaronius 24 dic. 2019 a las 18:17