Pregunta:
Fecha: 14-03-2016 10:51:05
(En Español)
Y el modelo es Estudiante_Model.php
Ahora bien, utilizo como ORM a propel y este me crea una clase llamada Estudiante, la cual entra en conflicto con mi controlador como es lógico.
Lo que quisiera es que mi controllador se llamase Estudiante_Controller, pero si se llama así en la url del navegador tengo que ponerlo tambien, quedaría así: http://escuela/estudiante_controller, cuando realmente solo quiero que quede http://escuela/estudiante.
Trabajando con .htaccess para eliminar el index.php de la url y probé poner lo siguiente: RewriteRule ^(.*)$ /tupiso/index.php/$1_Controller [L] para que a la dirección que venga le agregue la terminación _Controller. pero no funcionó.
Cualquier ayuda será bienvenida.
Gracias.
Votos: 3 - Respuestas: 8 - Vistas: 18 Compartir en: Google Facebook Twitter LinkedIn Link
Controlador en CodeIgniter[Resuelta]
Hola comunidad, estoy incursionando en el CodeIgniter, la pregunta es la siguiente: Según la documentación que he visto, por lo general al controlador le ponen el nombre de la tabla en base de datos, por ejemplo si tengo una tabla 'Estudiante' se crea un Estudiante.php y dentro tieneclass Estudiante extends CI_Controller {}
Y el modelo es Estudiante_Model.php
Ahora bien, utilizo como ORM a propel y este me crea una clase llamada Estudiante, la cual entra en conflicto con mi controlador como es lógico.
Lo que quisiera es que mi controllador se llamase Estudiante_Controller, pero si se llama así en la url del navegador tengo que ponerlo tambien, quedaría así: http://escuela/estudiante_controller, cuando realmente solo quiero que quede http://escuela/estudiante.
Trabajando con .htaccess para eliminar el index.php de la url y probé poner lo siguiente: RewriteRule ^(.*)$ /tupiso/index.php/$1_Controller [L] para que a la dirección que venga le agregue la terminación _Controller. pero no funcionó.
Cualquier ayuda será bienvenida.
Gracias.
Votos: 3 - Respuestas: 8 - Vistas: 18 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 14-03-2016 12:01:59 Hola Jaime, lo que puedes utilizar son namespaces para evitar colisiones o conflictos de nombres.
Hay muy buenos manuales en Internet, mismo la documentación de php.net es muy buena, aquí te dejo dos enlaces:
http://php.net/manual/es/language.namespaces.php
http://www.desarrolloweb.com/articulos/uso-namespaces-php.html
Saludos!
PD: si alguien quiere aportar algo de código y ejemplos de uso de namespaces bienvendio sea! +1 Votos: 3 - Link respuesta -
Fecha: 15-03-2016 05:28:56 Gracias Fernando por tu respuesta, y felicidades por la criatura!!!!. Es que tambien me hacía ilusión ponerle el "_Controller" detras para seguir el patron como los model tienen _Model y además tambien cuando creo un modelo del front por norma le pongo Estudiante_FrontModel, Estudiante_BackModel, en caso que tenga que hacer un modulo para 'Trabajador' por ejemplo le pondría Estudiante_TrabajadorModel, etc., y eso quería hacerlo tambien con los controladores.
Gracias. Votos: 3 - Link respuesta -
Fecha: 15-03-2016 06:20:44 Gracias Jaime por tus saludos, espero puedas sumar una foto de perfil así te conocemos.
En lo particular, yo no utilizo underscore "_" para nombres de clases y/o métodos, sino más bien notación camello con inicio en mayúscula para las clases e inicio en minúscula para los métodos, y lo recomiendo como buena práctica.
Saludos, Votos: 3 - Link respuesta -
Fecha: 15-03-2016 07:21:48 Hola jaime lo que tu quieres hacer es sencillo , lo que tienes que hacer es crear un route con el nombre de la clase y colocar la palabra que quiere que se visualize.
para hacer ello tienes que hacer lo siguiente,
ubicar el archivo routes.php se encuentra en application/config/routes.php
una vez encontrado el archivo creas esta linea
$route['estudiante'] = 'Estudiante_Controller';
y eso es todo
tu clase normal se puede llamar Estudiante_Controller
class Estudiante_Controller extends CI_Controller {}
y para llamar seria asi
http://escuela/estudiante
nota : recuerda que el routes.php funciona como seria un htaccess
en este caso estas diciendo que cuando llames a controlador estudiante , estaria llamando a Estudiante_Controller
saludos , pruebas y comentas Votos: 4 - Link respuesta -
Fecha: 15-03-2016 07:32:33 Okay aquí como te mencionan tienes que tener una nomenclatura para Modelos y Controladores.
Yo utilizo ModeloModel y Model
EstudianteModel Class y Estudiante Class como controlador :) Votos: 1 - Link respuesta -
Fecha: 16-03-2016 04:25:42 Buenos días a todos.
Fernando la foto te la debo, no te preocupes. Yo tambien prefiero escribir como tú, prefiero poner EstudianteController antes que poner Estudiante_Controller, pero por tal de mantener una homogeneidad con la librería me adapto.
Juan: muchas gracias, tienes razón no me había dado cuenta que podía hacer eso, gracias. Votos: 1 - Link respuesta -
Fecha: 16-03-2016 05:45:45 De nada Jaime , no olvides de dar resuelta a la pregunta , saludos :) Votos: 2 - Link respuesta
-
Fecha: 07-09-2017 15:40:40 Hola, ami me funciona mucho si uso para los controlllers los nombres en plural y para modelos en singular.. por ejemplo: estudiantes.php en carpeta controllers y estudiante.php en carpeta models... eso me ha ayudado.. Saludos Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión