Pregunta

Estoy teniendo un poco de confusión en el intento de crear retroactivamente un nuevo controlador de base para mi proyecto. Si no estoy equivocado, todo lo que necesita hacer es crear un archivo en application/libraries llamada MY_baseController.php que contiene lo siguiente:

class baseController extends Template_Controller
{
  public function __construct()
  {
    parent::__construct();
  }
}

Y a continuación, volver a escribir mis otros controladores para extender baseController en lugar de Template_Controller:

class Frontpage_Controller extends Template_Controller

a

class Frontpage_Controller extends baseController

Sin embargo, cuando hago esto, el acceso a la Frontpage_Controller me alerta que:

Clase 'BaseController' no se encuentra ...

¿Qué me estoy perdiendo aquí?

¿Fue útil?

Solución

Después de algún tocar el violín, creo que el siguiente es mi solución ...

Mover MY_baseController.php de application/libraries y en application/controllers. Cambiar el nombre a base.php y cambiar la siguiente línea:

class baseController extends Template_Controller

en

class Base_Controller extends Template_Controller

Ahora dentro de su controlador Frontpage, extender Base_Controller en lugar de baseController.

Otros consejos

Asegúrese de que sigue las convenciones Kohana para asegurarse de que todo carga automáticamente correctamente! Hay otros similares en relación con los modelos ayudantes y bibliotecas.

Además, si desea mantener su carpeta principal controlador de aplicación limpia Yo sugeriría hacer un módulo de Kohana sólo para su aplicación y poner todos los controladores de plantilla y extensión misceláneos allí para mantenerlos separados de sus principales controladores.

Pero no se olvide de agregar el módulo a su archivo de configuración!

Sé que esto es una vieja pregunta, pero pensé que había puesto en una palabra. Sólo tiene que quitar el prefijo MY_ del nombre de archivo, ya que sólo lo necesita realmente al extender una clase con el sufijo _Core en la carpeta del sistema. Por ejemplo, el archivo de

class Controller extends Controller_Core

sería nombrado MY_Controller.php.

En este caso, basta con nombrar el baseController.php archivo y ponerlo en la carpeta de bibliotecas funcionaría.

Sin ofender, pero que tenía que golpear mi cabeza en mi equipo para que funcione con Kohana 3.1. Finalmente me di cuenta de que la sintaxis para extender controlador de la plantilla debe ser:

class Controller_Base extends Controller_Template
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top