Cita:
Iniciado por masterpuppet Es que te estas dando la respuesta,
como lo has dicho es como lo deberías hacer, el controller recibe por parámetro la marca, es mas como siempre vas a precisar una marca, te puedes hacer un plugin que al detectar el controller(MarcaController para tomar tu ejemplo) automáticamente busque la marca en la persistencia y la inyecte en el fc o bien en el controller.
Saludos.
Entiendo tu solución pero tengo ciertas lagunas sobre cómo aplicarla. Verás, yo había intentado resolver el problema creando el siguiente plug-in:
Código PHP:
class My_Controller_Plugin_ControllerCheck extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
//Intercepta el nombre del controlador y su accion
//Por ejemplo, al pinchar en el enlace
// $this->url(array('controller'=>'opel', 'action'=>'index'))
$controllerName = $this->getRequest()->getControllerName();
$actionName = $this->getRequest()->getActionName();
//Array donde se almacenan los nombres de los controladores
$controladores = array('seat','opel','bmw','ford');
//Compruebo si el nombre del controlador está en el array
//En caso positivo redirijo la $request al controlador genérico
//pasándole como parámetro el nombre del controlador inicial,
//por ejemplo, ('controller'=>'opel', 'action'=>'index')
if(in_array($controllerName, $controladores)) {
$request->setControllerName('marca');
$request->setActionName('index');
$request->setParam('nombre', $controllerName);
}
}
}
¿Cuál es el problema? Que tan sólo recibe el parámetro con el nombre de la marca la acción Index, es decir, el resto de acciones no reciben nada. Entonces, dicho lo anterior, no sé muy bien cómo implementar la solución que propones.