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
Como Usar los Modelos en KumbiaPHP
¿Que es un modelo? MVC
Como hacer un CRUD en KumbiaPHP (100% MVC)
Es que incluso acabo de pensar otra opción; creo tres vistas distintas y el controlador elige cual mostrar.
Gracias por tu ayuda.
Validació != Lógica