
La dama que canta (incendies)
Escucha este post
Publicado por
Aacini++
en
13:45
1 comentarios

Revelar contraseñas guardadas en el navegador web Truco
Escucha este post
Publicado por
Aacini++
en
16:19
0
comentarios
| Por cuestiones de seguridad, todos los sitios web cuando piden una contraseña, ocultan el texto escrito en el cuadro de texto correspondiente de modo que ningún malintencionado que pase cerca pueda "descubrir" cuál es la contraseña. He aquí un pequeño truco para revelar esas contraseñas. :) |
Pasos a seguir
1.- Abrí la página en cuestión usando Chrome/Chromium y hacé clic sobre el cuadro de texto que contiene la contraseña (sí, la que está llena de asteriscos).2.- Seleccioná la opción Inspeccionar elemento. Se va a abrir un recuadro en el que aparece el código fuente del elemento en cuestión.
3.- Donde dice type="password" escribí type="text" y presioná Enter.
Otro método muy sencillo para ver las contraseñas almacenadas en Chrome/Chromium es yendo a: Preferences > Personal Stuff > Show Saved Passwords.
Nota: en Firefox puede conseguirse el mismo resultado utilizando la extensión Firebug. Para ver las contraseñas almacenadas basta con ir a Edición > Preferencias > Seguridad > Contraseñas almacenadas > Mostrar Contraseñas.
Tablas relacionadas en cakephp y Recuperar datos de ellas.
Escucha este post
Publicado por
Aacini++
en
20:21
1 comentarios
Definir relaciones entre Modelos (tablas)
Para ver este tema empezaremos a partir de una aplicación
Scaffolding puedes ver el tema aqui.
Scaffolding puedes ver el tema aqui.
Como cualquiera que tenga experiencia en bases de datos
sabrá hay 3 tipos de relaciones que una tabla puede tener.
sabrá hay 3 tipos de relaciones que una tabla puede tener.
1.
Uno a uno: Un registro guarda relación con un registro de otra tabla.
Uno a uno: Un registro guarda relación con un registro de otra tabla.
2.
Uno a muchos: un registro guarda relación con muchos
registros de otra tabla.
Uno a muchos: un registro guarda relación con muchos
registros de otra tabla.
3.
Muchos a muchos: Muchos registros guardan relación con muchos registros
de otra tabla.
Muchos a muchos: Muchos registros guardan relación con muchos registros
de otra tabla.
Para definir estas relaciones
en los modelos tenemos estas dos variables
var $belongsTo=’modeloQSigue’;
Esta variable se pone cuando sigue a un modelo
var $hasOne=’modeloQLoSiguen’;
Esta variable se pone cuando lo sigue otro modelo
var $hasMany=’modelosQLoSiguen’;
Esta variable se pone cuando lo siguen otros modelos
var $hasAndBelongsToMany =’modeloQLoSiguen’;
Esta variable se pone cuando tiene y pertenece a muchos
Para este ejemplo haremos un ejemplo de alumnos con cursos. Donde a un
curso tiene muchos alumnos, Y un alumno solo tiene un curso.
en los modelos tenemos estas dos variables
var $belongsTo=’modeloQSigue’;
Esta variable se pone cuando sigue a un modelo
var $hasOne=’modeloQLoSiguen’;
Esta variable se pone cuando lo sigue otro modelo
var $hasMany=’modelosQLoSiguen’;
Esta variable se pone cuando lo siguen otros modelos
var $hasAndBelongsToMany =’modeloQLoSiguen’;
Esta variable se pone cuando tiene y pertenece a muchos
Para este ejemplo haremos un ejemplo de alumnos con cursos. Donde a un
curso tiene muchos alumnos, Y un alumno solo tiene un curso.
Creamos la base de datos con
las siguientes tablas:
las siguientes tablas:
CREATE TABLE `cursos` (
`id` int( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nombre` varchar( 127 ) NOT NULL ,
`aula` varchar( 127 ) NOT NULL ,
`tutor` varchar( 127 ) NOT NULL
);
`id` int( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nombre` varchar( 127 ) NOT NULL ,
`aula` varchar( 127 ) NOT NULL ,
`tutor` varchar( 127 ) NOT NULL
);
CREATE TABLE `alumnos` (
`id` int( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`codigo` varchar( 13 ) NOT NULL ,
`nombre` varchar( 64 ) NOT NULL ,
`apellidos` varchar( 127 ) NOT NULL ,
`curso_id` int( 11 ) NOT NULL
)
`id` int( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`codigo` varchar( 13 ) NOT NULL ,
`nombre` varchar( 64 ) NOT NULL ,
`apellidos` varchar( 127 ) NOT NULL ,
`curso_id` int( 11 ) NOT NULL
)
Nota que en la table alumnos hemos creado un campo curso_id que es una clave
externa para relacionarla con la table cursos. las relaciones que tienen estos
modelos entre si.las reglas para las claves externas son
1. Nombre
en singular del modelo que sigue
en singular del modelo que sigue
2. Seguido
de _id
de _id
<?php
class Alumno extends AppModel{
var $name='Alumno';
var $belongsTo='Curso';// pértenece a : Curso
}
?>
class Alumno extends AppModel{
var $name='Alumno';
var $belongsTo='Curso';// pértenece a : Curso
}
?>
Se nota que en el modelo Alumno
hemos puesto la variable $belongsTo por que esigue a un modole en este caso a
curso
hemos puesto la variable $belongsTo por que esigue a un modole en este caso a
curso
<?php
class Curso extends AppModel{
var $name='Curso';
var $hasMany='Alumno';//tiene muchos
}
?>
class Curso extends AppModel{
var $name='Curso';
var $hasMany='Alumno';//tiene muchos
}
?>
Y en Curso hemos puesto la
variable $hasMany por que un curso puede tener muchos Alumnos (en este caso).Y
así de fácil hemos definido la relación que guardan estos dos modelos
variable $hasMany por que un curso puede tener muchos Alumnos (en este caso).Y
así de fácil hemos definido la relación que guardan estos dos modelos
Una ves hecho las tablas vamos a crear los modelos y definir.
Ya tenemos definidos los
modelos y la relación que guardan entre ellos pero no podemos definir nada
sin los controladores ni las vistas. Para ver esto mas rápido tenemos la
variable Scaffolding. Con esta variable podemos probar estas relaciones. Las
definimos en los dos controladores.
class CursosController extends AppController{
var $name= 'Cursos';
Var $sacaffold;
}
modelos y la relación que guardan entre ellos pero no podemos definir nada
sin los controladores ni las vistas. Para ver esto mas rápido tenemos la
variable Scaffolding. Con esta variable podemos probar estas relaciones. Las
definimos en los dos controladores.
class CursosController extends AppController{
var $name= 'Cursos';
Var $sacaffold;
}
class
AlumnosController extends AppController{
var $name= 'Alumnos';
Var $sacaffold;
}
AlumnosController extends AppController{
var $name= 'Alumnos';
Var $sacaffold;
}
Ya con estos controladores
podemos esa relación. Puedes llenar algunos cursos primero para poder ver como
desde la creación de un nuevo alumno puedes escoger el id del Curso al que
pertenecerá.
podemos esa relación. Puedes llenar algunos cursos primero para poder ver como
desde la creación de un nuevo alumno puedes escoger el id del Curso al que
pertenecerá.
Recuperar Datos de tablas
relacionadas
Una ves hecho un ligero trabajo
susio cakephp nos da la grata noticia que para poder recuperar datos de tablas
relacionadas no necesitamos hacer nada. El mismo método find(‘all’)
nos devuelve también los registros relacionados con el registro solicitado en
la búsqueda.Whore!!
Solo tenemos que tener en cuenta que si queremos sacar registros de otros
modelos relacionados indirectamente usamos una propiedad del modelo llamado
$this->Model->recursive=1 que es el valor por defecto;
La forma que nos devolverá los registros relacionados dependerá la variable que
ayamos definido en el modelo ya sea $hasMany o $belongsTo
susio cakephp nos da la grata noticia que para poder recuperar datos de tablas
relacionadas no necesitamos hacer nada. El mismo método find(‘all’)
nos devuelve también los registros relacionados con el registro solicitado en
la búsqueda.Whore!!
Solo tenemos que tener en cuenta que si queremos sacar registros de otros
modelos relacionados indirectamente usamos una propiedad del modelo llamado
$this->Model->recursive=1 que es el valor por defecto;
La forma que nos devolverá los registros relacionados dependerá la variable que
ayamos definido en el modelo ya sea $hasMany o $belongsTo
Método find() (cakePhp)
Escucha este post
Publicado por
Aacini++
en
15:28
1 comentarios
Hola que tal queridos lectores(si
es que hay alguno por ahi) hoy les traigo otro tema acerca de cakephp. La forma
de utilizar el método find() de un Model cualquiera.
es que hay alguno por ahi) hoy les traigo otro tema acerca de cakephp. La forma
de utilizar el método find() de un Model cualquiera.
Como ya sabrás para contar con una conexión a la base de
datos tendrás que configurar un el archivo database.php. que se encuentra en
MiProyecto\app\config\(original mente se llama database.php.default) y después crear
un archivo en MiProyecto \app\models llamado como la tabla que creas te en
mysql pero en singular (sin la ‘s’)por ejemplo alumno.php.
datos tendrás que configurar un el archivo database.php. que se encuentra en
MiProyecto\app\config\(original mente se llama database.php.default) y después crear
un archivo en MiProyecto \app\models llamado como la tabla que creas te en
mysql pero en singular (sin la ‘s’)por ejemplo alumno.php.
<?php
//la clase debe ser igual que el nombre del archivo, siempre con sintaxis de camello
class Alumno extends AppModel{
var $name='Alumno';
}
?>
//la clase debe ser igual que el nombre del archivo, siempre con sintaxis de camello
class Alumno extends AppModel{
var $name='Alumno';
}
?>
Y finalmente el controller que va en MiProyecto\app\controllers
con el nombre de la tabla +”_controller”seria: alumnos_controller.php con el código
<?php
//como el archivo +Controller , siempre con sintaxis Camello
class AlumnosController extends AppController{
var $name='Alumnos';
}
?>
con el nombre de la tabla +”_controller”seria: alumnos_controller.php con el código
<?php
//como el archivo +Controller , siempre con sintaxis Camello
class AlumnosController extends AppController{
var $name='Alumnos';
}
?>
Ahora si a lo que nos truje: el método find()
Siempre por defcto en nuestro controller hay una instancia de la clase modelo que
por defecto corresponde a dicho modelo. Por ejemplo si el controller se llama AlumnosController si instanciara
Alumno en el controller
y o usamos asi:
Siempre por defcto en nuestro controller hay una instancia de la clase modelo que
por defecto corresponde a dicho modelo. Por ejemplo si el controller se llama AlumnosController si instanciara
Alumno en el controller
y o usamos asi:
$this->Alumno->find();
Es te método solo tiene dos parámetros :
Es te método solo tiene dos parámetros :
1.- $type que es del tipo String y puede tener los
siguientes valores
a) all devuelve todos los registros que cumplen las condiciones si las hay(devuelve
un array multidimensional)
b) first devuelve solo el primer registro en cumplir las condiciones(devuelve
un array diferente si lo usamos)
c) count devuelve el numero totla de registros dados por la consulta (devuelve
un array diferente)
siguientes valores
a) all devuelve todos los registros que cumplen las condiciones si las hay(devuelve
un array multidimensional)
b) first devuelve solo el primer registro en cumplir las condiciones(devuelve
un array diferente si lo usamos)
c) count devuelve el numero totla de registros dados por la consulta (devuelve
un array diferente)
2.- $constraints es un array asociativo con los posibles ítems:
a) fields es array de los campos que tienen que ser devuelta por la consulta
b) conditions es un array de condiciones aplicadas a where(sql)
c) order string define la clausula ORDER BY
d)limit es un entero especifica el numero de ítems
e)offset desde cual ítem empezar
Probemos suponiendo que tenemos la siguiente tabla
a) fields es array de los campos que tienen que ser devuelta por la consulta
b) conditions es un array de condiciones aplicadas a where(sql)
c) order string define la clausula ORDER BY
d)limit es un entero especifica el numero de ítems
e)offset desde cual ítem empezar
Probemos suponiendo que tenemos la siguiente tabla
Para que la tabla nos devuelva todos los registros sin
condiciones seria
$answer=$this->Alumno->find(‘all’);
como se ve solo le pasamos el primer parámetro
Para preguntar solo por los ítems nombre,apellido y edad usamos el segundo parámetro
y el ítem fields prefuntamos por dichos campos seria:
condiciones seria
$answer=$this->Alumno->find(‘all’);
como se ve solo le pasamos el primer parámetro
Para preguntar solo por los ítems nombre,apellido y edad usamos el segundo parámetro
y el ítem fields prefuntamos por dichos campos seria:
$ answer =
$this->Alumno->find(
'all',
array(
'fields'=>array(
'Alumno.nombre',
'Alumno.apellidos',
'Alumno.edad'
),
));
Como se ve son dos arrays en el segundo parámetro
Ahora si queremos restringir mas la búsqueda debemos usar los demás ítems en
el segundo parámetro.Por ejemplo en esta consulta preguntamos por los campos
nombre,apellidos y edad, pero solo queremos los que en nombre empiezen por j('conditions'=>array('Alumno.nombre
like'=>'J%'),), y también los ordenamos en
orden ascendente('order'=>'Alumno.apellidos ASC',).Finalmente limitamos los resultados a solo 10('limit'=>10)
$this->Alumno->find(
'all',
array(
'fields'=>array(
'Alumno.nombre',
'Alumno.apellidos',
'Alumno.edad'
),
));
Como se ve son dos arrays en el segundo parámetro
Ahora si queremos restringir mas la búsqueda debemos usar los demás ítems en
el segundo parámetro.Por ejemplo en esta consulta preguntamos por los campos
nombre,apellidos y edad, pero solo queremos los que en nombre empiezen por j('conditions'=>array('Alumno.nombre
like'=>'J%'),), y también los ordenamos en
orden ascendente('order'=>'Alumno.apellidos ASC',).Finalmente limitamos los resultados a solo 10('limit'=>10)
$ answer = $this->Alumno->find(
'all',
array(
'fields'=>array(
'Alumno.nombre',
'Alumno.apellidos',
'Alumno.edad'
),
'conditions'=>array('Alumno.nombre like'=>'J%'),
'order'=>'Alumno.apellidos ASC',
'limit'=>10
));
Otros ejemplos:
// numero total de alumnos
que empiezan con el caracter j
$ answer = $this->Alumno->find('count',
array(
'conditions'=>array('Alumno.nombre like'=>'J%'),
));
que empiezan con el caracter j
$ answer = $this->Alumno->find('count',
array(
'conditions'=>array('Alumno.nombre like'=>'J%'),
));
//encontrar el codigo y el
nombre del alumno con el id mas alto y ordenar por id descendente
nombre del alumno con el id mas alto y ordenar por id descendente
$ answer = $this->Alumno->find('first',
array(
'fields'=>array(
'Alumno.codigo',
'Alumno.nombre'
),
array(
'fields'=>array(
'Alumno.codigo',
'Alumno.nombre'
),
'order'=>'Alumno.id DESC'
));
// los alumnos que tienen el
apellido Montero ,ordenar por nombre ascendente
apellido Montero ,ordenar por nombre ascendente
$alumnosMontero
= $this->Alumno->find('all',
array(
'fields'=>array(
'Alumno.nombre',
'Alumno.apellidos',
'Alumno.edad'
),
'conditions'=>array('Alumno.apellidos
like'=>'%Montero%'),
= $this->Alumno->find('all',
array(
'fields'=>array(
'Alumno.nombre',
'Alumno.apellidos',
'Alumno.edad'
),
'conditions'=>array('Alumno.apellidos
like'=>'%Montero%'),
'order'=>'Alumno.nombre ASC',
));
));
Ahora
metamos las manos bien adentro en esto, veamos consultas más complejas
metamos las manos bien adentro en esto, veamos consultas más complejas
¿Como
preguntar por un mismo campo pero con valores diferentes?. Por ejemplo
preguntar por 3 códigos específicos .Lo que se tiene que hacer es en lugar de
igualar un string en ‘conditions’, lo relacionamos con otro array (po rdefecto
se entiende que es igual al menos que especifiquemos lo contrario)
preguntar por un mismo campo pero con valores diferentes?. Por ejemplo
preguntar por 3 códigos específicos .Lo que se tiene que hacer es en lugar de
igualar un string en ‘conditions’, lo relacionamos con otro array (po rdefecto
se entiende que es igual al menos que especifiquemos lo contrario)
$alumnos030507=
$this->Alumno->find('all',
array(
'fields'=>array(
'Alumno.codigo',
'Alumno.nombre',
'Alumno.apellidos',
'Alumno.edad'
),
'conditions'=>array('Alumno.codigo'=>array('0003','0005','0007'))
));
$this->Alumno->find('all',
array(
'fields'=>array(
'Alumno.codigo',
'Alumno.nombre',
'Alumno.apellidos',
'Alumno.edad'
),
'conditions'=>array('Alumno.codigo'=>array('0003','0005','0007'))
));
Condiciones múltiples
Por defecto el condicional es
and . Si queremos tener mas de una condición con este operador lo podemos
omitir y solo agregar ítems en el array conditions
and . Si queremos tener mas de una condición con este operador lo podemos
omitir y solo agregar ítems en el array conditions
Como vemos ahora:
// Monteros que tengan 17 años
$alumnosMontero17= $this->Alumno->find('all',
array(
'fields'=>array(
'Alumno.nombre',
'Alumno.apellidos',
'Alumno.edad'
),
'conditions'=>array('Alumno.apellidos
like'=>'%Montero%','Alumno.edad'=>'17')
));
$alumnosMontero17= $this->Alumno->find('all',
array(
'fields'=>array(
'Alumno.nombre',
'Alumno.apellidos',
'Alumno.edad'
),
'conditions'=>array('Alumno.apellidos
like'=>'%Montero%','Alumno.edad'=>'17')
));
Esta consulta seria para pedir
los campos nombre, apellidos y edad de los que tengan el apellido Montero y
tengan edad de 17.
los campos nombre, apellidos y edad de los que tengan el apellido Montero y
tengan edad de 17.
Para ocupar otro operador por
ejemplo or, Dentro del array relacional ‘conditions’ tenemos que meter un ítem
llamado ‘or’ que es otro array relacional . Dentro de este array metemos las
condiciones. Por ejemplo la siguiente consulta pregunta por los Jaime o los que
tengan 19 años de dad
ejemplo or, Dentro del array relacional ‘conditions’ tenemos que meter un ítem
llamado ‘or’ que es otro array relacional . Dentro de este array metemos las
condiciones. Por ejemplo la siguiente consulta pregunta por los Jaime o los que
tengan 19 años de dad
$alumnosMonteroor17=
$this->Alumno->find('all',
array(
'fields'=>array(
'Alumno.nombre',
'Alumno.apellidos',
'Alumno.edad'
),
'conditions'=>array(
'or'=>array('Alumno.apellidos
like'=>'%Montero%','Alumno.edad'=>'17')
)
));
$this->Alumno->find('all',
array(
'fields'=>array(
'Alumno.nombre',
'Alumno.apellidos',
'Alumno.edad'
),
'conditions'=>array(
'or'=>array('Alumno.apellidos
like'=>'%Montero%','Alumno.edad'=>'17')
)
));
Esta consulta seira
equivalente a
if(($apellidos==’Montero’)or($edad==17))
en php y esta es la consulta sql que hace
equivalente a
if(($apellidos==’Montero’)or($edad==17))
en php y esta es la consulta sql que hace
SELECT `Alumno`.`nombre`, `Alumno`.`apellidos`, `Alumno`.`edad`
FROM `alumnos` AS `Alumno` WHERE ((`Alumno`.`apellidos` like '%Montero%') OR
(`Alumno`.`edad` = '17'))
FROM `alumnos` AS `Alumno` WHERE ((`Alumno`.`apellidos` like '%Montero%') OR
(`Alumno`.`edad` = '17'))
Para combinar operadores and y
or los agrupamos en arrays. Vemos un ejemplo de la condiciones para una
consulta:
'conditions'=>array(
'or'=>array(
array('Alumno.apellidos
LIKE'=>'%Montero%','Alumno.edad'=>'17'),
array('Alumno.nombre
LIKE'=>'Rosa','Alumno.edad'=>'19')
)
)
or los agrupamos en arrays. Vemos un ejemplo de la condiciones para una
consulta:
'conditions'=>array(
'or'=>array(
array('Alumno.apellidos
LIKE'=>'%Montero%','Alumno.edad'=>'17'),
array('Alumno.nombre
LIKE'=>'Rosa','Alumno.edad'=>'19')
)
)
En esta consulta preguntamos
por los Monteros que tengan 17 años o los Rosa que tengan 19 años. Como se ve
creamos un ítem llamado ‘or’ y lo hacemos igual a un array donde dentro ponemos
todos los arrays que se entenderán como las partes de ese or, Al mismo tiempo
esos arrays anidados tienen dos ítems y por defecto usan el and asi que las
partes de ese array serán tomados como los los valores para ese and. Si pudiéramos
pasarlo a un código php mas simple este seria:
por los Monteros que tengan 17 años o los Rosa que tengan 19 años. Como se ve
creamos un ítem llamado ‘or’ y lo hacemos igual a un array donde dentro ponemos
todos los arrays que se entenderán como las partes de ese or, Al mismo tiempo
esos arrays anidados tienen dos ítems y por defecto usan el and asi que las
partes de ese array serán tomados como los los valores para ese and. Si pudiéramos
pasarlo a un código php mas simple este seria:
if(
( ($apellidos==’Montero’)and($edad==17)) or (($nombre==’Rosa’)and($edad==19)) )
( ($apellidos==’Montero’)and($edad==17)) or (($nombre==’Rosa’)and($edad==19)) )
O bien su consulta que hace
es :
es :
SELECT `Alumno`.`nombre`, `Alumno`.`apellidos`, `Alumno`.`edad`
FROM `alumnos` AS `Alumno` WHERE ((((`Alumno`.`apellidos` LIKE '%Montero%') AND
(`Alumno`.`edad` = '17'))) OR (((`Alumno`.`nombre` LIKE 'Rosa') AND
(`Alumno`.`edad` = '19'))))
FROM `alumnos` AS `Alumno` WHERE ((((`Alumno`.`apellidos` LIKE '%Montero%') AND
(`Alumno`.`edad` = '17'))) OR (((`Alumno`.`nombre` LIKE 'Rosa') AND
(`Alumno`.`edad` = '19'))))
Otra función parecida a find() pero mas fácil de usar es
findBy()
donde agregamos el nombre del campo que deseamos preguntar y como argumento el
campo. Nos devuelve el primer ítem que coincida en un array similar al que
devuelve ‘first’
findBy()
donde agregamos el nombre del campo que deseamos preguntar y como argumento el
campo. Nos devuelve el primer ítem que coincida en un array similar al que
devuelve ‘first’
$alumnosMagic=$this->Alumno->findByNombre('Manuel');
Solo nos devuelve el primer ítem si queremos que devuelva todos
usamos Si queremos que nos devuelva todos usamos finnAllBy(). En este método
igual le pasamos el nombre del campo por el que queremos preguntar en sintaxis
camello.
usamos Si queremos que nos devuelva todos usamos finnAllBy(). En este método
igual le pasamos el nombre del campo por el que queremos preguntar en sintaxis
camello.
$alumnosAllBy=$this->Alumno->findAllByEdad('17');
Nos devuelve un array similar al devuelto por ‘all’
El codigo (documental de openSource)
Escucha este post
Publicado por
Aacini++
en
18:36
0
comentarios
El documental e s “The Code: Linux” (oficialmente “The Code“), el documental finlandés que se emitió a través de ARTE (en España también), que también podéis ver bajo estas líneas (51 minutos) en su versión española. Aparecen también esos mitos vivos del mundo Linux, además de algunos más que han dedicado buena parte de su tiempo a picar código. Gracias a Sombra, el usuario que lo envió a Google Video.
Creación de aplicaciones rápidas con Cackephp ( Scaffolding)
Escucha este post
Publicado por
Aacini++
en
21:52
0
comentarios
Hola que tal . Yo aquí de vuelta . Les traigo un tema
variado. Como ya muchos saben cakephp es un framework para php algo
controvertido. Muy fácil de usar pero no a muchos les gusta. En esta ocasión
les daré una muestra de su sencillez,
variado. Como ya muchos saben cakephp es un framework para php algo
controvertido. Muy fácil de usar pero no a muchos les gusta. En esta ocasión
les daré una muestra de su sencillez,
Primero creamos la base de datos con la tabla
en phpmyadmin importamos este código
en phpmyadmin importamos este código
CREATE DATABASE `lista` ;
CREATE TABLE IF NOT EXISTS `tareas` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`nombre` varchar(255) NOT NULL,
`fecha` datetime NOT NULL,
`prioridad` int(2) NOT NULL,
`completado` tinyint(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
CREATE TABLE IF NOT EXISTS `tareas` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`nombre` varchar(255) NOT NULL,
`fecha` datetime NOT NULL,
`prioridad` int(2) NOT NULL,
`completado` tinyint(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
Es importante sabes y seguir las convenciones de cakephp
-El nombre de la tabla debe estar en plural (tareas)
-La clave primaria debe tener por nombre id
-La clave primaria debe tener por nombre id
Luego creamos una instancia de cakephp (solo copiando el
original en www)
original en www)
Y la renombremos a lista. Y congiguramos la base de datos
en el archivo
en el archivo
lista\app\config\ database.php.defaulf a database.php
solamente
solamente
abrimos el archivo y configuramos las variables (solo poner
usuario ,pass y base de datos)
usuario ,pass y base de datos)
Segundo paso creamos el archivo modelo en la carpeta lista\app\models\
El nombre es preciso que sea el nombre de la tabla en
singular y minúsculas osea : tarea.php
singular y minúsculas osea : tarea.php
Y creamos la clase que extienda de AppModel
todos los modelos deben estar en sintaxis camello (la primer letra de cada
palabra en mayusculas) y creamos una variable llamada $name igual a el nombre
de la clase esto quedaría asi.
todos los modelos deben estar en sintaxis camello (la primer letra de cada
palabra en mayusculas) y creamos una variable llamada $name igual a el nombre
de la clase esto quedaría asi.
Tercer paso hacemos el controlador
En la carpeta lista\app\controllers creamos un archivo
controlador que debe tener por nombre el mismo nombre que la tabla de la base
de datos + _controller esto seria lista_controller.php
controlador que debe tener por nombre el mismo nombre que la tabla de la base
de datos + _controller esto seria lista_controller.php
Y escribimos el código php
una clase de nombre de la tabla + controller y en sintaxis camello seria
asi: TareasController y estendida de la clase AppController
una clase de nombre de la tabla + controller y en sintaxis camello seria
asi: TareasController y estendida de la clase AppController
Además debemos de añadir 2 variables unas que sea de nombre
$name igual a ‘Tareas’ (la tabla que controla) y una segunda variable de
nombre $scaffold;
$name igual a ‘Tareas’ (la tabla que controla) y una segunda variable de
nombre $scaffold;
Y con esto ya tenemos una aplicación creada que permite
agregar editar eliminar y ver el contenido de una tabla veamos la en :
agregar editar eliminar y ver el contenido de una tabla veamos la en :
http://localhost/lista/tareas
algo así:
como vimos escribimos muy poco código pero tenemos que seguir las convenciones
establecida por cakephp
les dejo mis archivo final aqui
algo así:
como vimos escribimos muy poco código pero tenemos que seguir las convenciones
establecida por cakephp
Touchégg in Ubuntu 10.10 with Apple Magic Trackpad
Escucha este post
Publicado por
Aacini++
en
17:31
0
comentarios
Suscribirse a:
Entradas (Atom)

