Foros del Web » Programando para Internet » PHP » Zend »

Problema con la url del Action

Estas en el tema de Problema con la url del Action en el foro de Zend en Foros del Web. Saludos, estoy siguiendo este tutorial: http://alemohamad.com/tutorial-zend-framework-2-beta/ Pero yo ya lo tengo todo configurado con mi Album y demás. Lo que estoy haciendo es añadiéndole los ...
  #1 (permalink)  
Antiguo 26/09/2012, 09:08
Avatar de Fylux  
Fecha de Ingreso: junio-2012
Mensajes: 141
Antigüedad: 11 años, 9 meses
Puntos: 9
Pregunta Problema con la url del Action

Saludos, estoy siguiendo este tutorial:
http://alemohamad.com/tutorial-zend-framework-2-beta/

Pero yo ya lo tengo todo configurado con mi Album y demás. Lo que estoy haciendo es añadiéndole los Action que me dice, entonces añado:

Código PHP:

namespace AlbumController
;

use 
ZendMvcControllerActionController,
    
ZendViewModelViewModel;

class 
AlbumController extends ActionController
{
    public function 
indexAction()
    {
    }

    public function 
addAction()
    {
    }

    public function 
editAction()
    {
    }

    public function 
deleteAction()
    {
    }

Y me dice que configure esto (Pero esto ya lo he configurado anteriormente y sospecho que esta forma de configuración lo es la misma que la mia)

Código PHP:
<?php
return array(
    
'di' => array(
        
'instance' => array(
            
'alias' => array(
                
'album' => 'Album\Controller\AlbumController',
            ),
            
'Zend\View\Resolver\TemplatePathStack' => array(
                
'parameters' => array(
                    
'paths'  => array(
                        
'album' => __DIR__ '/../view',
                    ),
                ),
            ),
        ),
    ),
);
Bien, pues ahora cuando entro en /zf2/public/album/add me sale:

Código:
A 404 error occurred
Page not found.

The requested controller could not be mapped to an existing controller class.

Controller:
    Album\Controller\Add(resolves to invalid controller class or alias: Album\Controller\Add)

Exception:

Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for Album\Controller\Add
Y así con todas los action. Excepto el index que me funciona.
Y si pongo http://localhost/zf2/public/album/add/ o cualquier cosa acabada con el / me sale un simple error 404.

¿Cómo puedo arreglar esto?

Y también me dice que cree AlbumTable en una carpeta llamada Model que no existe, ¿qué debería hacer?

Saludos y gracias de antemano.
__________________
Si todos escribiéramos sin faltas de ortografía, el mundo sería un lugar mejor.

Última edición por Fylux; 26/09/2012 a las 09:13
  #2 (permalink)  
Antiguo 26/09/2012, 09:36
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 5 meses
Puntos: 24
Respuesta: Problema con la url del Action

El tutorial q estas siguiendo está desactualizado
"Nota: Este tutorial ha sido testeado en la beta 3 de Zend Framework 2. Puede que funcione en versiones más recientes, pero es probable que no lo haga en versiones anteriores."

Te recomiendo que leas el del sitio oficial http://framework.zend.com/manual/2.0.../overview.html
  #3 (permalink)  
Antiguo 26/09/2012, 09:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con la url del Action

En efecto, el tutorial que sigues ya no es valido, sobre todo por el DI, ahora se usa el ServiceLocator (que usa di internamente) pero es mejor que aprendas a usar el ServiceLocator.

Saludos.
  #4 (permalink)  
Antiguo 26/09/2012, 09:39
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 5 meses
Puntos: 24
Respuesta: Problema con la url del Action

Ah y no te saltes ningún paso Ej VirtualHost
  #5 (permalink)  
Antiguo 26/09/2012, 09:43
Avatar de Fylux  
Fecha de Ingreso: junio-2012
Mensajes: 141
Antigüedad: 11 años, 9 meses
Puntos: 9
Respuesta: Problema con la url del Action

Ok, gracias a todos. Pensé que no habría cambiado demasiado en un par de betas, y como era el único en español...
El virtualhost no lo he cambiado porque tenía problemas, pues no sabía en que parte de mi httpd.conf ponerlo y no me dejaba guardar los cambias en el hosts de windows.

Saludos y gracias.
__________________
Si todos escribiéramos sin faltas de ortografía, el mundo sería un lugar mejor.
  #6 (permalink)  
Antiguo 26/09/2012, 09:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con la url del Action

En tu Apache debes de tener un httpd-vhosts.conf en ese archivo lo puedes poner, respecto al archivo hosts, necesitas editarlo con un notepad elevado, da botón derecho en el icono de Notepad y ponle Run as Administrator para poder modificarlo.

Saludos.
  #7 (permalink)  
Antiguo 26/09/2012, 09:50
Avatar de Fylux  
Fecha de Ingreso: junio-2012
Mensajes: 141
Antigüedad: 11 años, 9 meses
Puntos: 9
Respuesta: Problema con la url del Action

Ok, ahora estoy haciendo el otro y es verdad que me funciona, pero me da este error.

Fatal error: Uncaught exception 'Zend\View\Exception\RuntimeException' with message 'Zend\View\Renderer\PhpRenderer::render: Unable to render template "album/index/add"; resolver could not resolve to a file' in C:\wamp\www\zf2\vendor\zendframework\zendframework \library\Zend\View\Renderer\PhpRenderer.php on line 454
( ! ) Zend\View\Exception\RuntimeException: Zend\View\Renderer\PhpRenderer::render: Unable to render template "album/index/add"; resolver could not resolve to a file in C:\wamp\www\zf2\vendor\zendframework\zendframework \library\Zend\View\Renderer\PhpRenderer.php on line 454

Saludos y gracias por su ayuda.
__________________
Si todos escribiéramos sin faltas de ortografía, el mundo sería un lugar mejor.
  #8 (permalink)  
Antiguo 26/09/2012, 09:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con la url del Action

Postea la config de tu module.
  #9 (permalink)  
Antiguo 26/09/2012, 09:52
Avatar de Fylux  
Fecha de Ingreso: junio-2012
Mensajes: 141
Antigüedad: 11 años, 9 meses
Puntos: 9
Respuesta: Problema con la url del Action

<?php
return array(
'controllers' => array(
'invokables' => array(
'Album\Controller\Album' => 'Album\Controller\IndexController',
),
),

// The following section is new and should be added to your file
'router' => array(
'routes' => array(
'album' => array(
'type' => 'segment',
'options' => array(
'route' => '/album[/:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Album\Controller\Album',
'action' => 'index',
),
),
),
),
),

'view_manager' => array(
'template_path_stack' => array(
'album' => __DIR__ . '/../view',
),
),
);
?>

PD: Mi controlador se llama IndexController.
__________________
Si todos escribiéramos sin faltas de ortografía, el mundo sería un lugar mejor.
  #10 (permalink)  
Antiguo 26/09/2012, 10:04
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Problema con la url del Action

Que tal Fylux,

En lo posible utiliza el highligther así es mas sencillo de leer el código ;), ahora sobre la excepción, existe el .phtml para la acción que estas ejecutando ?(index/add.phtml)

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #11 (permalink)  
Antiguo 26/09/2012, 10:10
Avatar de Fylux  
Fecha de Ingreso: junio-2012
Mensajes: 141
Antigüedad: 11 años, 9 meses
Puntos: 9
Respuesta: Problema con la url del Action

Gracias a todos, ya lo he corregido, el problema era que no había creado en view album/album sino solo album.
Gracias de nuevo por ayudarme.

Saludos.

PD: Una ultima duda.
Cuando añado mi virtualhost lo que ocurre es que hasta cuando escribo localhost me lleva a zf2.gn.
¿Puedo arreglaro?
Esto es lo que tengo en hosts:

127.0.0.1 zf2.gn localhost

Y esto lo que he añadido a el httpd.conf

<VirtualHost *:80>
ServerName zf2.gn
DocumentRoot c:/wamp/www/zf2/public
SetEnv APPLICATION_ENV "development"
<Directory c:/wamp/www/zf2/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

¿Y esto debería estar así?:
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
__________________
Si todos escribiéramos sin faltas de ortografía, el mundo sería un lugar mejor.

Última edición por Fylux; 26/09/2012 a las 10:25
  #12 (permalink)  
Antiguo 26/09/2012, 10:38
Avatar de Fylux  
Fecha de Ingreso: junio-2012
Mensajes: 141
Antigüedad: 11 años, 9 meses
Puntos: 9
Respuesta: Problema con la url del Action

Saludos, estoy acabando la práctica y siempre encuentro errores, esta vez este es mi error:
Fatal error: Class 'Album\AlbumTable' not found in C:\wamp\www\zf2\module\Album\Module.php on line 32

Les cuento, es carpeta Model tan famosa, yo no la tengo en src/album/ así que la he creado yo manualmente y le he creado los dos archivos que me dice.

Por si acaso les paso el archivo Module.php

Código PHP:
<?php
// module/Album/Module.php
namespace Album;

class 
Module
{
    public function 
getAutoloaderConfig()
    {
        return array(
            
'Zend\Loader\ClassMapAutoloader' => array(
                
__DIR__ '/autoload_classmap.php',
            ),
            
'Zend\Loader\StandardAutoloader' => array(
                
'namespaces' => array(
                    
__NAMESPACE__ => __DIR__ '/src/' __NAMESPACE__,
                ),
            ),
        );
    }

    public function 
getConfig()
    {
        return include 
__DIR__ '/config/module.config.php';
    }
    
    public function 
getServiceConfig()
    {
        return array(
            
'factories' => array(
                
'Album\Model\AlbumTable' =>  function($sm) {
                    
$dbAdapter $sm->get('Zend\Db\Adapter\Adapter');
                    
$table     = new AlbumTable($dbAdapter);
                    return 
$table;
                },
            ),
        );
    }

    
}
?>
__________________
Si todos escribiéramos sin faltas de ortografía, el mundo sería un lugar mejor.
  #13 (permalink)  
Antiguo 26/09/2012, 10:43
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Problema con la url del Action

Tienes que importar la clase Album\Model\AlbumTable o bien instanciar Model\AlbumTable, de todas formas tienes el proyecto en github https://github.com/akrabat/zf2-tutorial

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #14 (permalink)  
Antiguo 26/09/2012, 10:53
Avatar de Fylux  
Fecha de Ingreso: junio-2012
Mensajes: 141
Antigüedad: 11 años, 9 meses
Puntos: 9
Respuesta: Problema con la url del Action

En el código que he puesto se ve que he importado a Album\Model\AlbumTable, no se porque dice otra cosa en el error.
__________________
Si todos escribiéramos sin faltas de ortografía, el mundo sería un lugar mejor.
  #15 (permalink)  
Antiguo 26/09/2012, 10:57
Avatar de Fylux  
Fecha de Ingreso: junio-2012
Mensajes: 141
Antigüedad: 11 años, 9 meses
Puntos: 9
Respuesta: Problema con la url del Action

OOOOOOOOOOOOh, por fin lo conseguí.
En serio, mil gracias a todos.
Gracias otra vez.

Saludos.
__________________
Si todos escribiéramos sin faltas de ortografía, el mundo sería un lugar mejor.

Etiquetas: class, framework, php, url, acciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:42.