Las consultas las pongo en el modelo o en el controlador??

Hola!
A ver si alguien me puede sacar de dudas, porque quiero seguir el MVC al pie de la letra pero tengo dudas de si es la forma correcta o no en cada caso:

Caso 1.
Un controlador realiza una operacion con un parametro recibido y se puede mostrar al usuario por pantalla 3 posibles casos. Puedo o generar un valor que le diga a la vista qué mensaje mostrar o desde el controlador generar el mensaje directamente, y en la vista simplemente mostrarlo. Yo optaría por la primera, pero eso fuerza a meter código en la vista, lo cual lo complica.

controllers/controlador_controller.php
<?php
    class ControladorController extends ApplicationController {
        public function index() {
            $this->result=rand(0,3)
    }
}
?>

views/controlador/index.phtml
<?php 
    switch ($result) {
        case 0: $msg="Ha salido cero"; break;
        case 1: $msg="Ha salido uno"; break;
        case 2: $msg="Ha salido dos"; break;
    }
    echo $msg;
?>

Caso 2.
Hay una tabla con los registros de inicio de sesión de usuarios, un modelo para la tabla, y un controlador que necesita saber los usuarios que mas veces iniciaron sesión, asi como las veces totales que iniciaron sesion.
Esta claro que desde el controlador puedo hacer la consulta usando find_by_sql, pero es mejor hacer en el modelo una funcion que los devuelva? En este caso he optado por la primera, pero me da que segun MVC debería meter una funcion en el modelo ya que al controlador no le importa ni el lenguaje ni la sintaxis ni nada de la base de datos.

models/log.php
<?php
class Log extends ActiveRecord {
	public $logger = true;
}
?>

controllers/log_controller.php
<?php
    class LogController extends ApplicationController {
        public function index() {
            $this->lastLogged = $this->Log->find_all_by_sql("SELECT u.name, COUNT( * ) AS inicios FROM log l, users u WHERE l.name = u.name GROUP BY l.name ORDER BY inicios DESC LIMIT 10");    }
}
?>

Perdon por el toston, pero prefería hacer la pregunta bien hecha <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->

Comentarios

Sign In or Register to comment.