2011-11-06 23 views
13

En mi caja de WAMP, que hizo lo siguiente:CodeIgniter: "No se puede cargar la clase solicitada"

  1. añadido un archivo llamado /application/libraries/Foo.php
  2. foo.php es una clase , y del nombre es Foo
  3. En /application/config/autoload.php, añadí $autoload['libraries'] = array('foo');

Todo funciona bien. Cuando subo a mi caja de la lámpara, me sale el siguiente error:

Unable to load the requested class: foo

Permiso de /application/libraries/Foo.php es 0755. El propietario es el mismo que el resto de los archivos de CI. Si saca foo de autocarga, el problema desaparecerá.

¿Alguna idea de lo que podría estar mal?

Respuesta

37

En Windows, las mayúsculas y minúsculas en las rutas no son importantes. En Linux lo hace.

Cuando realiza una carga automática, use "Foo" y no "foo".

Creo que hará el truco.

Creo que funciona cuando lo sacas de la carga automática porque codeigniter es lo suficientemente inteligente como para deducir las mayúsculas en la ruta y las clases son independientes de cada caso en php.

+0

Creo que hay algunas Mistrakes en la documentación sobre el caso del código de ignitores –

+0

tenían el mismo problema. En autocarga tuve 'oauth2', pero cambié a 'OAuth2' y funcionó. Gracias. – gelviis

+0

en Linux ¿qué es FOO? Es ese modelo? ¿o Clase o controlador de vista u otra cosa? Por favor sea especifico. –

0

Si está utilizando un servidor Linux para su aplicación, entonces es necesario utilizar el nombre de archivo en minúscula y el nombre de clase para evitar este problema.

Ej.

Nombre del archivo: csvsample.php

class csvsample { 

} 
2

que tenía un problema similar al distribuir desde OSX en mi local para mi sitio vivo Linux.

funcionó bien en OSX, pero en Linux que estaba recibiendo:

An Error Was Encountered 

Unable to load the requested class: Ckeditor 

El problema era que las rutas de Linux son aparentemente entre mayúsculas y minúsculas, así que tenía que cambiar el nombre de archivos de la biblioteca de "ckeditor.php" a "CKEditor.php".

También ha cambiado mi llamada de carga para que coincida con la capitalización:

$this->load->library('CKEditor'); 
Cuestiones relacionadas