El 25/10/2007, a las 5:22, mbavio escribió:
> Perdon por mi extrema idiotez, pero sigo sin cazarla del todo...
> Entiendo el concepto, pero no entiendo como aplicarlo... Me podrias
> dar un ejemplo tonto pero entendible para que me termine de cerrar?
> Perdon, pero creo que es lo mas dificil, esto de aprender a pensar
> distinto...
Yo tampoco lo veo del todo claro, pero lo que hago para darle "peso"
al modelo es más o menos así:
Supongamos el típico ejemplo de Blog (con sus Post y demás).
Ahora supongamos que en el modelo tengo un campo "publicar" que me
indica si un Post está publicado (1) o en borrador (2). Y, por otro
lado, quiero poder controlar eso a través de un botón de la interfaz
que apunte a /posts/publicar/id o /post/borrador/id.
Bueno, pues lo que haría sería crear métodos en el modelo que, tal
que así (simplificando mucho y a lo mejor ni siquiera es esta la
mejor manera):
class Post extends AppModel {
... código ...
function publicar ($id) {
$this->id = $id;
$this->saveField('publicar', 1);
}
function borrador ($id) {
$this->id = $id;
$this->saveField('publicar', 0);
}
}
Por su parte, en el controlador tendría que poner una acción o
acciones que se encargaran de responder a la petición del usuario:
class PostsController extends AppController {
... código ...
function publicar ($id) {
$this->Post->publicar($id);
}
function borrador ($id) {
$this->Post->borrador($id);
}
}
Bueno, más o menos así. La idea es que el controlador "no sepa" nada
acerca de cómo funciona el modelo. Simplemente se limita a recibir lo
que el usuario le indica (ejecutar una acción) y la acción llama a
métodos del modelo que realizan lo necesario con los datos para esa
acción y luego pedir que se muestre la vista que sea adecuada (por
ejemplo, un mensaje informando de que sea ha cambiado el estado de
ese Post o actualizando un listado).
El ejemplo es muy simple, pero quizá ilustre la idea.
--
Fran Iglesias
[EMAIL PROTECTED]
--~--~---------~--~----~------------~-------~--~----~
Has recibido este mensaje porque estás suscrito a Grupo "CakePHP-es" de Grupos
de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a [email protected]
Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
Para obtener más opciones, visita este grupo en
http://groups.google.com/group/CakePHP-es?hl=es.
-~----------~----~----~----~------~----~------~--~---