La tabla CakePHP falta, incluso cuando existe

intenté buscar en Google y busqué una respuesta aquí también,

El problema

CakePHP no puede encontrar una tabla, incluso cuando existe.

Lo que probé:

  1. Borrar la carpeta de caché
  2. Verificando el nombre de la tabla y la cadena de conexión.
  3. Añadiendo useTable = “urls”

El código

class Url extends AppModel { public function add_url($the_url,$the_content,$title) { $this->create(); $this->set('url', $the_url ); $this->set('content', $the_content ); $this->set('title', $title ); $this->save(); } } 

El error:

Falta la tabla de la base de datos

Error: las URL de tabla para el Url del modelo no se encontraron en el valor predeterminado de la fuente de datos.

Tal vez alguien sabe la respuesta a esto?

Compruebe si hay problemas de caché

Una forma de identificar (o eliminar) problemas relacionados con la memoria caché es simplemente deshabilitar la memoria caché :

 /** * Turn off all caching application-wide. * */ Configure::write('Cache.disable', true); 

Si esto resuelve el problema, es necesario analizar de cerca por qué los esfuerzos anteriores para borrar el caché aparentemente fallaron. Si se usa el almacenamiento en caché basado en archivos, asegúrese de que se eliminen todos los archivos que están bajo tmp , si se utiliza un almacén de caché diferente, asegúrese de que se borre realmente.

¿Hay una tabla faltante o ninguna tabla informada?

Otra causa relativamente común de lo que se describe es que el usuario de la base de datos no tiene permiso para listar las tablas en la base de datos dada, esto se puede verificar de la misma manera que lo hace un modelo :

 $db = ConnectionManager::getDataSource('default'); debug($db->listSources()); die; 

Si no hay ninguna tabla en la lista, verifique las credenciales de conexión y asegúrese de que, por ejemplo, no hay problemas relacionados con los permisos. Ejecute el mismo sql que CakePHP ejecuta a través del cli y asegúrese de que el resultado sea el esperado:

 $ mysql -uuser -ppassword databasename mysql> show tables from foo; +-----------------+ | Tables_in_foo | +-----------------+ | posts | | urls | +-----------------+ 2 rows in set (0.00 sec) 

Si hay tablas enumeradas, entonces doble, triple y cuádruple comprueben las credenciales de conexión ya que el código relevante está funcionando como se esperaba y la tabla que falta no existe de hecho en la base de datos a la que se conecta la aplicación.