Tutorial: Creando un blog con CakePHP
Versión usada: 1.1.3.2967
Fecha: 02/Junio/2006
Requisitos: PHP5, MySQL y una noche con ganas de hacer esto.
Acerca de CakePHP
CakePHP, es un framework para agilizar la creación de aplicaciones web usando PHP y MySQL.
Antes de pasar al código, si no sabes lo que es, o como trabaja un framework del tipo MVC, te recomiendo lo averigues, no es condición necesaria para hacer este tutorial, pero si para entender lo que vamos a hacer a continuación.
¿Que aplicación vamos a crear?
Un blog.
Si, diganme aburrido, amargo, lo que quieran, pero es una aplicación bastante completa, y que todos conocemos bien, la cual lo hace una aplicación ideal para empezar.
¿Por dónde se empieza?
Para ser directo, se comienza por diagramar la base de datos con sus tablas y relaciones.
Si queremos ser realistas, antes hay que pensar en que es lo que vamos a hacer y tener una idea de los objetos para luego pasar al modelo de la base de datos. Como el tiempo es tirano y si escribo algo muy largo no lo van a leer, pasemos por alto esta etapa.
¿Cómo es la estructura de la base de datos de un blog?
Es muy sencilla la verdad, nuestro blog va a tener posts y comentarios, para evitar líos de compatibilidad, caracteres extraños y demás cosas, yo les recomiendo programar siempre en inglés.
Volviendo a la base de datos, vamos a tener dos tablas:

Noten que a ambas las llamé en plural, eso no es casualidad. Lejos de serlo, es por convención, y si respetamos la forma de nombrar a las tablas, archivos, clases y métodos, CakePHP va a hacer mucho del trabajo por sí solo.
La tabla posts
La tabla contiene los atributos de la clase Post, como se ve en el gráfico de MySQL.

Noten las columnas created y modified, aca aparece de nuevo la convención en CakePHP, si usamos estos nombres en las columnas y las declaramos del tipo datetime, automáticamente se van a completar cada vez que se cree (created) o modifique (modified) un elemento.
La tabla comments
Al igual que la tabla de posts, esta contiene todos los atributos del objeto Comment.

Noten la columna post_id, ya por poner, el nombre del modelo Post en singular seguido de “_id” (todo en minúsculas, claro) CakePHP va a entender que es una Foreign Key a la tabla posts.
El código SQL completo para crear la base de datos
CREATE TABLE `posts` (
`id` int(5) NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`content` text NOT NULL,
`created` datetime default NULL,
`modified` datetime default NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `comments` (
`id` int(7) NOT NULL auto_increment,
`post_id` int(5) NOT NULL default '0',
`name` varchar(100) NOT NULL default '',
`email` varchar(255) NOT NULL default '',
`website` varchar(255) default NULL,
`content` text NOT NULL,
`created` datetime default NULL,
PRIMARY KEY (`id`)
);
Llegó el momento de instalar CakePHP en el servidor
Una vez descargado (descarga CakePHP) con solo descomprimirlo en algun directorio visible del servidor web será suficiente. Esto no es lo ideal ya que el código fuente de CakePHP queda visible, pero excede a este tutorial hablar sobre seguridad y optimización de la aplicación.
Luego de haber instalado CakePHP hay que configurarlo, esto es una tarea muy ardua… asi que la voy a poner paso por paso:
- Editar el archivo database.php.default ubicado en /app/config/ con los datos de la base de datos recien creada y guardarlo como database.php.
Fin, esa fue la configuración de CakePHP, ¿fue fácil? Genial, ya son expertos instaladores de CakePHP!
Ya está CakePHP instalado, y ya hay bases de datos, a programar señores
Lo primero que tenemos que hacer, es crear el modelo de la aplicación. El modelo es el encargado de comunicar nuestra aplicación con la base de datos, por lo que cualquier consulta a la misma va a pasar a travez del código que ahora generemos.
Es muy importante tener un modelo limpio y bien pensado para luego construir la aplicación sobre esta base sólida.
Todos los modelos se van a ubicar en el directorio /app/model/.
El modelo Post
Hay que crear un archivo llamado post.php en el directorio donde se alojan los modelos. El nombre del archivo corresponde a la tabla, pero en singular, y por supuesto, en minúsculas.
<?php
class Post extends AppModel
{
// código del modelo.
}
?>
Esta clase llamada Post, al igual que todos los demas modelos, debe heredar de AppModel.
En el interior de esta clase se van a ubicar las validaciones yrelaciones que tiene nuestro modelo.
Como es sabido, un post tiene muchos comentarios, para lo cual vamos a agregar la siguiente linea dentro de la clase Post:
var $hasMany = array('Comment');
El modelo Comment
Al igual que hicimos para Post, el modelo Comment debe tener su propio archivo en el directorio de los modelos, llamado comment.php, y como un comentario pertenece a un Post, hay que decirlo en el código:
<?php
class Comment extends AppModel
{
var $belongsTo = array('Post');
}
?>
Terminamos con el modelo
Por el momento no lo vamos a tocar mas, asi que pasemos a donde esta la verdadera acción, a la C de Controller.
Los controladores
Ya hay ansias de ver esto andando no?
Vamos a crear dos controladores muy rápidamente para poder ver nuestro blog ya funcionando.
Todos los controladores, lógicament ese ubican en el directorio controllers. Cada modelo tiene su controlador, todos heredan de la clase AppController y se los guarda en archivos con la siguiente convención: [nombre_del_modelo_en_plural]_controller.php.
Por ejemplo en nuestro caso: posts_controller.php y comments_controller.php.
Un controlador por dentro es asi, en el caso de posts_controller.php:
<?php
class PostsController extends AppController
{
// código del controlador.
}
?>
Para ver funcionando nuestra aplicación, vamos a usar una de las modalidades mas útiles para las primeras etapas del proyecto: el scaffold.
Con solo declarar una variable llamada scaffold en el controlador, CakePHP genera un ABM (Alta, Baja y Modificacion) del modelo.
Para probarlo es suficiente con este código, doy el ejemplo para comments_controller.php y les dejo de tarea hacerlo en posts_controller.php:
<?php
class CommentsController extends AppController
{
var $scaffold;
}
?>
A navegar!
Apunta el navegador a la URL donde instalaste CakePHP. Deberia decir que esta instalado y ve la base de datos.
Ahora agrega al final de la URL: /posts
Y si todo anduvo bien, deberias ver algo parecido a esto:



Comentarios
# - 2006-06-03
Excelente tuto Diego. Aquí están todas las bases para empezar a hornear pasteles.
Una cosa: Cake llama intermaente a los modelos y controladores utilizando una convención de mayusculas/minusculas NombreDelControlador, pero php4 guarda los nombres de las clases en minusculas siempre (:S) así que el hack que han puesto los desarrolladores pa saltarse eso es poner una variable $name dentro del controlador y del model con el nombreescrito como debe ser. Sin eso, el código no anda en php4 (y esa es una de las caracteristicas de Cake sobre los demás fw). x ej.:
# - 2006-06-03
En limpio:
Lo que Sosa dice es que si usan PHP4, deben poner dentro de los controladores y modelos, el nombre del objeto que manejan, por ejemplo en el objeto Post:
var $name = 'Post';Mi consejo: Usen PHP5 y todos felices ;-).
# - 2006-06-04
Muchos servers parecen haberse quedado en el 4.
# - 2006-06-04
Excelente tutorial y una gran manera de entrar al mundo Cake.
# - 2006-06-05
hola mira de lo que escribis te digo la verdad no entiendo nada pero me interesa saber si tenemos el mismo nombre o estoy equivocado te mando un abrazo y lo que escribis no me parece nada aburrido lo que pasa es que no entiendo nada ja ja ja ja
# - 2006-06-06
#Federico: Es cierto, por suerte DreamHost no :-).
#Jona: Una vez que entras no salis, cuidado!!
#DFG: Si, nos llamamos igual… pobre :-P.
# - 2006-06-15
Buenas, lo primero darte las gracias por este manual, he intentado seguirlo paso a paso, pero resulta que no me encuentra las clases AppController
yo programo con el eclipse, y al colocar el codigo del modelo de los post, ya me sice fatal error no encuntra la clase
despues no me funiona la llamada desde la web
sabeis de donde puede venir
me pasa lo mismo con el manual de sosa , de los bookmark
por cierto en español no hay ningun manual aun no?
saludos
# - 2006-06-15
#noth: Es muy extranio eso, estas colocando los controladores en la carpeta /controllers?
Lo que si creo que estas confundiendo es el modelo con el controlador, ya que AppController es la clase de la que heredan los controladores, los modelos heredan de AppModel, ojo con eso.
Si aun sigue sin funcionarte, avisa y te paso el codigo fuente.
# - 2006-06-16
hola diego, muy interesante el tutorial. Me gustaria contar con mas ejemplos. en fin, tratar de buscar un manualen español, medio dificil no?
# - 2006-06-16
ah una cosa, no entiendo por que no funciona, me da error que no existe /posts ????? alguna ayuda
# - 2006-06-16
ya diego, encontre mi problema, es sobre el modulo rewrite que explica muy bien en el manual, y se me paso… un abrazo, y bueno, felicidades por lo de argentina, yo la verdad q me quede medio amargado con la derrota de Paraguay!… :-(
# - 2006-06-19
Buenas, gracias diego por el interés, y gracias a jean, que me encendio la bombilla de por que no funcionaba esto.
no tenia configurado el mod_rewrite en el apache
ahora ya funciona todo perfectamente, y me uno a jean, donde podremos sacar mas ejemplos manuales y demas?
tambien otra cosa, soy nuevo en esto de los framework, pero se podria usar esto, para hacer un sitio web por ejemplo de una empresa??
me imagino que tendriamos que instalar un cake, por cada proyecto no?
saludos y gracias por este manual
# - 2006-06-21
#noth: Por supuesto, se puede usar para lo que quieras. Lo unico que hace CakePHP es darte la estructura de archivos, algunas clases y la parte de comunicacion con la base de datos. En base a eso, podes construir lo que sea.
Y es posible tener mas de un proyecto en una misma instalación de CakePHP.
Les recomiendo entrar en el IRC, es #cakephp en el servidor freenode.
# - 2006-08-22
todo bien hasta que voy a correr podrían escribir la url completa. me da un error y no se si es como llamo al blog o lo del mod_rewrite que por cierto no se como verifico si esta o no activo. un poco de humanidad al contestar, gracias
# - 2006-08-22
#francis: no puse la URL completa porque sencillamente es imposible que la sepa, depende de en que lugar de tu servidor hayas instalado cakePHP.
Suponiendo que lo pusiste en el root, esta seria: http://localhost/cake/posts/
# - 2006-08-22
ok, primero gracias por no ser agresivo, ni pedante en la repuesta de veras eso me permite intentar de nuevo dentro del sistema de archivo esta en www/cake, y los archivos php de controller y model estan respectivamente en la carpeta cake y controller que se crea al instalar cake, mi ruta es entonces http://localhost/cake_1.1.7.3363/app/models/posts.php, y esa me da error, de nuevo gracias por tu paciencia a mi inexperiencia
# - 2006-08-22
#francis: Mmmm, me parece que tas interpretando mal la idea, a ver.
Primero veo que tenes una falla en el nombre del archivo, todos los modelos deberian recibir su nombre en singular, es decir
post.php. Los que se llaman en plural, son los controladores, mucho cuidado con eso.La otra cosa, es que no deberias apuntar al modelo, sino que a la siguiente URL: http://localhost/cakecake_1.1.7.3363/posts. Cake solo se encarga de unir el modelo Post con el controlador y las vistas, sin que vos los llames.
# - 2006-08-22
ok, antes de escribir esto intente todas las url posibles incluyendo lo del nombre pero la unica diferencia que tuve fue con la url http://localhost/cake_1.1.7.3363/app/models/post.php , que me da un error: Fatal error: Class post: Cannot inherit from undefined class appmodel in /var/www/cake_1.1.7.3363/app/models/post.php on line 2, de resto me da not found, por eso pense que era lo del mod_rewrite
# - 2006-08-24
#francis: Claro, eso pasa, porque la clase que esta en ese archivo, hereda de la clase AppModel, y como no esta incluyendo al resto de los archivos, no puede encontrarla.
Si los demas te da 404 Not Found, es muy probable que sea un problema de Mod Rewrite desactivado.
Eso se activa desde el http.conf, si estas usando Apache.
# - 2006-09-13
Hola el tutorial esta bueno, pero ahora tengo una pregunta.. necesito hacer perssitencia a una base de datos algo asi como struts hibernate pero con PHP. Es decir necesito hacer un mapeo de objetos contra una base de datos. Ojala puedas ayudarme Diego.
Y gracias de antemano por tu ayuda :D
# - 2006-09-13
#Javier: Proba con Propel
# - 2006-09-13
Hola muchas gracias por la ayuda, estaba probando el propel y no puedo terminar de instalar los requerimientos. Me dice que no puedo instalar el propel por no encuentra la instalacion de phing, pese a ser instaldo con todas sus dependencias.
Espero puedas ayudarme.
Gracias
# - 2006-09-13
#Javier: La verdad que nunca lo use… yo me fijaria si tienen un canal de IRC para hacer esas preguntas.. seguramente usen alguno.
Suerte!
# - 2006-09-13
Gracias de todos modos… :D
Mas bien tienes algho sobre porlets en PHP o cakePHP
# - 2006-09-14
Donde están los archivos correspondientes a la vista? para asi mejorar el diseño como a uno le plaza. Gracias
# - 2006-10-10
No sabes si hay alguna forma de castellanizar el scaffold para que tenga nuevo, editar, borrar, etc. en vez de los nombres en ingles
# - 2006-10-10
#Rene: mm no, igual ojo, la idea del scaffold es para hacer el prototipo, despues lo ideal es que vos lo retoques para optimizarlo (mete muchas cosas de mas y otras cosas le faltan…).
De todas formas fijate en /cake/scripts/ bake.php levanta los templates de algun archivo de ahi dentro… pero pensa que lo que esta en /cake, no es buena idea modificarlo…
# - 2006-10-10
Muchas gracias por tu respuesta, si tienes razon hay que optimizarlo, estoy apenas aprendiendo un poco de cake, a ver si paso de hacer los sitios desde cero o paso a cakephp
Despues de ver un poco el codigo me di cuenta que hay 3 formas de castellanizar el scaffold
La primera es modificar los archivos que estan en cake/libs/view/templates/scaffolds pero como dices no se me hace muy buena idea modificar los archivos que estan en cake
La segunda es copiar los contenidos de cake/libs/view/templates/scaffolds a app/views/scaffold y renombrar los archivos a scaffold.add.thtml, scaffold.edit.thtml, scaffold.index.thtml, scaffold.view.thtml esta es la que mas me gusto ya que no modifico nada dentro de cakephp y ya todos mis scaffold estan en español
y la tercera es crear dentro de app/views/posts archivos para las vistas que quieras modificar de tu scaffold con los nombres scaffold.add.thtml, scaffold.edit.thtml, scaffold.index.thtml, scaffold.view.thtml
# - 2006-10-12
hola, estoy tratando de hacer el tutorial… hago todo, pero al momento de ver la aplicacion, no funca:
http://localhost/cake/posts
error 404
tengo un XP con IIS 5, y vi lo del mode rewrite, pero no se si sera eso, y si es eso, no encuentro forma de solucionarlo.
Alguna ayuda?
gracias
# - 2006-10-12
#mauro: mmm proba si podes en un servidor con Apache, una vez intente poner un cake en un IIS y tenia muchos problemas (que como jamas use IIS, no tenia idea como resolver). Es muy probable que sea por el mod_rewrite, si.
# - 2006-11-22
Hola a todos…
yo sigo tenienndo problemas (error 404)
he activado el mod_rewrite pero sigo teniendo problemas
algioen tiene alguna solucion
# - 2006-11-22
@camico: Y.. necesito mas datos, con eso solo no me alcanza para saber que problema tenes. Si sabes ingles, te recomiendo mucho el IRC de cake en Freenode #cakephp.
# - 2006-11-25
Yo tambien tenia problemas, me salia error 404, porke no pudo hallar el archivo.
La solución en mi caso era activar el modulo rewrite de apache.
Pasos a seguir en caso de que estes con el servidor apache:
1º: abrir el archivo httpd.conf del servidor apache, que se en cuentra en la carpeta ‘conf’ donde este instalado el apache.
2º: buscar la linea que tenga lo siguiente:
#LoadModule rewrite_module modules/mod_rewrite.so
si esta asi con el # por delante significa que el modulo no esta siendo utilizado por apache, osea esta deshabilitada.
3º: un vez encontrada la line que tiene el mod_rewrite.so habilitarla quitando la # que esta delante de esta linea, debe quedar asi:
LoadModule rewrite_module modules/mod_rewrite.so
4º: guardar los cambios realizados en el documento httpd.conf
5º: para que el apache funcione con esta modificacion, cerrar (stop) el apache y volver a activar (start), o solamente re-activarlo (restart)
6º: en mi caso el problema fue solucionado, disfruten de utilizar cakephp
Lo estoy probando y es muy buena la idea de los framworks, y especialmente usando Php. bye.
# - 2006-11-28
HI..
Me gustaria saber mas sobre cakePHP, si alguien sabe de mas links con manuales y tutoriales lo agredecería mucho.
Humm tengo una pregunta, es totalmente necesario tener los nombres de las tablas de la BD en español, igual para nombrar los modelos y controladores?
Gracias…
# - 2006-12-25
esta bien bonito este tutorial, solo que deja muchas cosas a la imaginacion, me ha gustado mucho en mi caso monto la app desde http://www.bigsrc.org/cake/comments y el problema es que no quiero que aparezca el cake si no
bigsrc.org/comments de una sola ves que tendria que reconfigurar para cambiar eso
# - 2007-01-29
hola, hice paso a paso lo que dice el manual, e incluso instale php5 para evitar lo del mod_rewrite, tengo la coneccion a la base desde datos
CakePHP Rapid Development
Your database configuration file is present.
Cake is able to connect to the database.
pero cuando coloco el nombre de la tabla dice:
Not Found
The requested URL /cake_1.1.7.3363/posts was not found on this server.
Apache/2.0.54 (Ubuntu) PHP/5.0.5-2ubuntu1.6 Server at localhost Port 80
no entiendo que esta mal,o a que se debe que no funcione
# - 2007-02-28
Hola jose Says para resolver mi problema sobre el error Not Found solo seguí los pasos en este link:
http://brianpedigo.info/how_to_enable_mod_rewrite_on_ubuntu_6_06_apache2
pero ahora me sale este mensaje de error:
Fatal error: Class ‘PostsController’ not found in /var/www/project/cake/dispatcher.php on line 158
# - 2007-03-06
LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c
estos modulos tienen que estar activados, ami me paso lo mismo en WAMP5.
espero te sirva
# - 2007-03-21
Para todos los que quieran saber eso del mod_rewrite. No es suficiente con que descomentes esas lineas..
Tienes que buscar las lineas que dicen
AllowOverride none y pasarlo a:
AllowOverride All..
Con esto a mi me funciono , salu2
desde Lima-Peru
PHP 5 Revolutions
# - 2007-03-21
no es suficiente activar el module
debes buscar
AllowOverride none y reemplazar por
AllowOverride All
salu2 desde Lima Peru
Jaime M. Tan Nozawa
# - 2007-04-01
Hola, ya hice todo eso y cuando ingreso http://localhost/cake/posts o http://localhost/cake/posts/ me lleva a la pagina de inicio del Cake pero sin la hoja de estilo ¿?
# - 2007-04-09
Para dar solucion a todo, vete al httpd.conf, dentro de la carpeta conf, de Apache, este es el demonio de apache, ya…
ahora busca estas lineas y descomentalas, solo quitando este simbolo #, y nada mas…
#LoadModule rewrite_module modules/mod_rewrite.so
#AddModule mod_rewrite.c
Y por ultimo busca la linea de AllowOverride None y modificala, sobreescribiendo All
Options FollowSymLinks
AllowOverride All
Y eso dara solucion a los problemas antes comentados… ;-)
# - 2007-04-09
Estoy siguiendo tu tutorial, despues de pelearme con el mod_rewrite y con los permisos de los directorio me dice esto:
CakePHP Rapid Development
Missing Method in PostsController
You are seeing this error because the action index is not defined in controller PostsController
If you want to customize this error message, create app/views/errors/missing_action.thtml.
Fatal: Confirm you have created the PostsController::index() in file : app/controllers/posts_controller.php
No se como arreglar esto, añadiendo la funcion index tambien me da error.
No se si me podrá ayudar, pero gracias de antemano.
# - 2007-04-09
Este es el error que me da con la funcion index:
CakePHP Rapid Development
Missing view
You are seeing this error because the view for PostsController::index() could not be found.
If you want to customize this error message, create app/views/errors/missing_view.thtml.
Fatal: Confirm you have created the file : /var/www/cake/app/views/posts/index.thtml
# - 2007-05-22
Buenas.
Buen tuto.
Ami me ha pasado lo mismo que ustedes al querer cargar /post
me fije bien, y debe de ser “/posts” y no “/post”, porque ami me sucedio eso xD.
luego de que el archivo /posts_controller.php sea en realidad “posts_controller.php” y no “post_controler.php”, ya que eso tambien me ocurrio.
Luego probe el link, y faz no resulta… sin querer se me ocurrio poner
http://mi_ruta_de_dominio_o_localhost/la_carpeta_de_cake/index.php/posts
y faz me salio una pantalla con un link que decia “-New Post”. eso quiere decir que resulta.
hice click y me redirecciono, pero se cayo con el mensaje:
“The requested URL /posts/add was not found on this server.”
luego, pense un poco y arregle la url esta poniendo antes de “/posts/add” lo siguiente:
“http://mi_ruta_de_dominio_o_localhost/la_carpeta_de_cake/index.php/posts/add”.
de que cake funciona, funciona, pero nose como configurar el desgraciado apache2.
buscando y buscando ustedes hablan del rewrite, pues el httpd.conf para modificar esta VACIO(me extrañe ya que trabaje antes con apache 1.3 y existia ese archivo). luego me fije que hay un archivo llamado “apache2.conf” que trae algo de configuraciones, pero nada de rewrite.
Nose que mas configurar, y me duele la cabeza ya de pensarla. Ojala alguien me ayude.
Tengo montado el servidor en una maquina con ubuntu feisty. y el apache es el apache2 corriendo con php5 y mysql ademas.
# - 2007-05-23
Enhorabuena por tu tutorial! me ha sido de gran ayuda.
He probado con este ejemplo y todo ha salido a la maravilla.
Ahora bien, estoy probando a hacer una aplicación web con mis tablas (seccion, perfil). un perfil pertenece a una seccion y una seccion puede tener varios perfiles. y al probar la aplicacion perfil va bien, pero cuando pongo
en el explorador http://localhost/cake/seccions me da 2 warnnings:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\cake\app\controllers\seccions_controller.php:13) in C:\wamp\www\cake\cake\libs\session.php on line 154
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\cake\app\controllers\seccions_controller.php:13) in C:\wamp\www\cake\cake\libs\session.php on line 155
¿a que es debido estos 2 warnings?
Otra pregunta, como se puede cambiar el nombre de los botones (view,edit,delete,..), en definitiva cambiar la interfaz para castellanizarla y que no salga CAKEPHP.
Gracias por todo. Espero tu respuesta.
BEatriz
# - 2007-05-23
buenas de nuevo
arregle el asunto, declare en mi httpd.conf un VirtualName que me direcciona solo a la carpeta webroot de cakephp, y cree otro VirtualName para los demas scripts en php que poseo(phpmyadmin, etc…) y asi logre solucionar que al poner “http://mi_url_o_localhost/posts” cargue inmediato el formulario post, luego probe con “http://mi_url_o_localhost/comments” y tuve acceso a comments, sin ningun problema.
Pude editar, eliminar y otras cosas, y pude correr ejemplos un poco mas elaborados como poner Ajax en cakephp….
Aun no entiendo la tematica de trabajo de cakephp, es facil crear algo, pero hacer algo mas elaborado requiere mucho mas aprendizaje, añoro mi aventura con Smarty y Pear solamente….
Cakephp tiene muchas funcionalidades excelentes, el problema es adaptarlo a la realidad empresarial, y ahi esta el problema, solo espero solucionarlo.
Si alguien conoce alguna comunidad en español de cakephp, porfavor ojala me lo haga saber urgente plis.
mi correo es xian_ze@hotm…. para que me agreguen, o dejenlo posteado aca porfavor.
Grax por el tutorial, me sirvio bastante.
# - 2007-05-26
Barbaro para iniciarse, hice todo, y tambien tuve que ativar el mod_rewrite. Ahora me deja muchisimas interrogantes, ya que por lo que estuve analizando, este modelo, requiere de una estructura de base de datos pensada desde cero para usar Cake, por ejemplo si renombro el campo “post_id” ya el sistema se pierde, es decir, sin bien las convenciones de diseño estan bien, tengo sistemas desarrollados, donde tal vez no estan tal cual estas convenciones, con lo cual digo … como le digo a Cake cual es ID de mi tabla secundaria,… bueno y como esto un sin fin de cosas que se me vienen a la cabeza, creo que hay mucho por hacer y me parece verdaderamente muy pero muy interesante poder resolver aplicativos web de esta manera, entre nosotros (programadores), sabemos que ahorrariamos mucho tiempo, y en nuestra profesión, el tiempo es dinero, evitariamos errores, podríamos concentrarnos mas en le lógica del negocios y menos en “como” escribiendo miles de lineas de código, lo cierto es que, hace falta mas material de este tipo, aumentando en complejidad para poder dominar Cake y asi resolver sistemas mas complejos, tengo que comenzar en estas fechas un proyecto relativamente grande y deseo que este proyecto sea el punto de inflección en mi modo de desarrollar, prometo dejar lo que vaya aprendiendo, y espero encontrar a su vez la experiencia de otros, de esta manera la comunidad PHP crece, y no dejamos que Micro$ o compañias de este tipo aplaste nuestra manera libre de desarrollar, y por sobre todo nuestra calidad.
Disculpas por la extención, pero creo que es parte del entuciasmo, saludos a todos y espero pronto tener novedades para postear aqui o en otra parte.
Saludos!
Diego.
# - 2007-05-28
Diego, despues de llevar unos dias mas con cakephp eso de la sintaxis de cake es relativo.
tambien tuve ese problema, pero encontre que se pueden definir aparte esas cosas de los id y de nombrar las bases de datos con singular o plural.
No es dificil el cambio, en si es mucho mas comodo trabajar con la sintaxis de cake, pero este frameworks esta pensado tambien para cuando no se use esa sintaxis, y asi logre conectar mi base de datos en el idioma que yo quiera y de la forma que yo desee.
No es dificil, lo dificil viene despues.
Alguien sabe como traer datos selectivamente(onda usar el findAll() ) y esos datos usarlos en el scaffold???
porque no hay caso, me trae todos los datos y yo solo necesito algunos.
ojala puedan ayudarme.
# - 2007-06-05
Estuve haciendo el tutorial, esta buenisimo. Pero me surgieron algunos problemas, primero luego de instalar cake, y crear las tablas probe, y entre a la pagina y ahi estaba, me decia que se podia conectar a la bd. Todo perfecto, pero no me muestra imagenes ni estilos, probe modificar el httpd.config pero nada, tengo los mod rewrite, modifique los allow none por allow all, pero igual no se ven los estilos, finalmente hice el ejemplo de todas formas y luego al probarlo, me aparece la tabla pero en el interior de la tabla me sale el siguiente mensaje: Notice: Undefined index: Post in c:\archivos de programa\easyphp1-8\www\cakephp_prueba\cake\libs\view\templates\scaffolds\index.thtml on line 79. Que puede estar faltando/pasando? Uso WXP con EasyPHP.
# - 2007-06-07
Hola a todos… soy nuevo con el cake y mi problema es como el de otros casos q no encuentra el posts cuando le hago http://localhost/cakefw/posts y pues nada… toy usando ubuntu 7.04 mi apache el el 2.2.3 y el php 5.2.1 cuando hago el phpinfo() me sale en la parte de la configuracion del apache(apache2handler) q el el mod_rewrite esta cargado (Loaded Modules), asi q no se q es lo q pasa exactamente… osea necesito ayuda!! algo peculiar en mi httpd.conf fue q cuando lo edite la primera vez para habilitar las sesiones pues tenia bastante contenido y ahora estaba vacio… raro… cuando inicio, reinicio o detengo mi apache me sale un mensaje de “Starting web server (apache2)…apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName”
gracias por la ayuda =D
# - 2007-06-11
Saludos…
Tengo talvez, la mas trivial de las preguntas….Que tengo que hacer para que me muestre correctamente las paginas .thtml en el servidor linux con httpd levantado…
Mi objetivo es correr el ejemplo que esta en http://manual.cakephp.org/appendix/simple_user_auth ..
pero sigo las instrucciones como se indica en el ejemplo pero igual…las paginas no interpretan el codigo que esta entre comillas…por ejemplo
url(’/users/login’); ?>” method=”post”>
en la linea anterior me muestra
# - 2007-07-09
Para Favio: apache 2 (al menos como esta en ubuntu) ya no utiliza el httpd.conf, en su lugar veras una carpeta sites-available y dentro un fichero de configuracion para cada sitio o virtual host, si no has creado nada estaras metiendo tu cake en el sitio por defecto (abriras localhost y te saldra una carpeta default, otra con el cake, phpmyadmin si tienes etc)… pues bien, en la carpeta sites-available busca el fichero de tu sitio (se llamara default si no has tocado nada, o otro si has creado un virtual para el cake) y donde te ponga algo como allowoverride (hablo de memoria y no se si se escribe asi exactamente) cambia el none por all, con esto le dices a apaque que permites el uso del .htaccess en ese sitio, y entonces ya funcionara el mod_rewrite que por lo que dices ya tienes cargado. Espero te sirva ;)
# - 2007-08-09
me parece muy clara esta explicación, solo queria ver si puedes hacer un ejemplo sobre lo que son los helpes, y un ejemplo mas profundo.. trabando con ajax.. tambien si podrias envialo a mi correo si puedes ??mfelipe3@hotmail.com
# - 2007-08-15
Hola, les tengo una pregunta. He visto muchos ejemplos de lo que CakePHP puede hacer… Pero… Es tán poderoso y eficaz como para hacer APLICACIONES (cuando digo aplicaciones me refiero a aplicaciones de escritorio en ambiente web, módulos contables, de Recursos Humanos, de Inventario, etc.)….?? Ess que antes de enamorarme del Framework, me gustaría saber si puedo moldearlo de esa manera (incluyendo lo gráfico). Gracias!
# - 2007-08-23
gracias por enseñarme a dar mi primer paso en cake
# - 2007-08-30
Hola Alan.
Sigo con el problema de abrir el url: http://localhost/cake/posts
¿podrias por favor colocar una copia de la configuracion de los virtual host que usaste?
Gracias por tu colaboracion.:D
# - 2007-09-01
Ok. Después de tratar una y otra vez de hacer funcionar los ejemplos casi me habia rendido.
Dije casi. mi gran error: usar versiones obsoletas de apache - php. Ahora trabajo con apache 1.3.37 + php 4.4.7
Saludos.
# - 2007-09-16
Alguno conoce algun hosting en argentina que disponga del modulo rewrite para URL quiero instalar una aplicacion cake
# - 2007-09-18
Estoy tratando de hacer el ejemplo indicado en el tutorial, sin embargo tengo un mensaje en la pantalla principal del cake “cake is not able to connect to the database”.
Uso Php 5 sobre apache 2, con MySQL 4.
¿Que hago?
# - 2007-09-24
Hola a todos, yo hice todas las cosas que hay que hacer, y me sale el sgte error cuando hago http://localhost/cake/posts/
CakePHP Rapid Development
Missing Method in PostsController
You are seeing this error because the action index is not defined in controller PostsController
If you want to customize this error message, create app/views/errors/missing_action.thtml.
Fatal: Confirm you have created the PostsController::index() in file : app/controllers/posts_controller.php
Hice todas las cosas que hicieron los demas y nada… alguien me puede decir bien como lo solusiono porfavor…
muchas gracias
# - 2007-10-08
hola. entendi poco de cakephp. hice lo k usted dijo. descomente el LoadModule rewrite_module modules/mod_rewrite.so.
lo ejecuto y me sale el index principal.
me podra ayudar usted por favor. se lo agradeceria. si puede me manda su aplicacion de cakephp.
gracias.
# - 2008-03-18
saludos buen inicio
pero ahora que mas se puede hacer
# - 2008-04-21
Muchas gracias Diego por el ejemplo, como primera aproximación a utilizar este marco de trabajo.
Atte. Nicolás.
# - 2008-06-23
hola diego gracias por el tutorial
te cuento que hecho todo paso a paso, aclaro que ya tengo la tablas en la base de datos y tambien tengo activado el module de apache pero tengo el siguiente error
Missing Database Table
Error: Database table posts for model Post was not found
gracias, ya que hasta ahora me inicio con cake
# - 2008-06-23
que pena ya encontre el error fue que al momento de crear la tabla en base de datos la llame post y no posts por eso era que no la encontraba
gracias