Ahora KumbiaPHP está en Slack!!

Si deseas contactar con nosotros y de forma rápida, estamos en Slack:

http://slack.kumbiaphp.com/

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 :)

Comentarios

  • edited noviembre -1
    Te dejare unos enlaces que te serviran para aclarar estas dudas...

    Como Usar los Modelos en KumbiaPHP
    ¿Que es un modelo? MVC
    Como hacer un CRUD en KumbiaPHP (100% MVC)
  • edited noviembre -1
    Vale caso 2 resuelto. Y el caso 1?
    Es que incluso acabo de pensar otra opción; creo tres vistas distintas y el controlador elige cual mostrar.

    Gracias por tu ayuda.
  • edited noviembre -1
    Lo que no debes confundir es "validación" con "lógica". La lógica siempre debe ir al modelo una validación según el caso pudiera estar en la vista o bien el controller, si en tu caso 1 es un mensaje pudíeras utilizar el flash y enviar ese mensaje, pero nosé que tanto en ese mensaje que quieres enviar, pero piensa que...

    Validació != Lógica
Sign In or Register to comment.