Ver Mensaje Individual
  #5 (permalink)  
Antiguo 04/09/2012, 13:30
IXtremeLT
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 13 años, 5 meses
Puntos: 32
Respuesta: No puedo crear url con $this->url en ZF2

Hola, agradezco sus respuestas, lo mejor es dejar la configuración del enrutamiento.

module.config.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. return array(
  4.     'router' => array(
  5.         'routes' => array(
  6.             'home' => array(
  7.                 'type' => 'Zend\Mvc\Router\Http\Literal',
  8.                 'options' => array(
  9.                     'route'    => '/',
  10.                     'defaults' => array(
  11.                         'controller' => 'MyAccount\Controller\Index',
  12.                         'action'     => 'index',
  13.                     ),
  14.                 ),
  15.             ),
  16.             // The following is a route to simplify getting started creating
  17.             // new controllers and actions without needing to create a new
  18.             // module. Simply drop new controllers in, and you can access them
  19.             // using the path /application/:controller/:action
  20.             'myaccount' => array(
  21.                 'type'    => 'Literal',
  22.                 'options' => array(
  23.                     'route'    => '/myaccount',
  24.                     'defaults' => array(
  25.                         '__NAMESPACE__' => 'MyAccount\Controller',
  26.                         'controller'    => 'Index',
  27.                         'action'        => 'index',
  28.                     ),
  29.                 ),
  30.                 'may_terminate' => true,
  31.                 'child_routes' => array(
  32.                     'default' => array(
  33.                         'type'    => 'Segment',
  34.                         'options' => array(
  35.                             'route'    => '/[:controller[/:action]]',
  36.                             'constraints' => array(
  37.                                 'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
  38.                                 'action'     => '[a-zA-Z][a-zA-Z0-9_-]*',
  39.                             ),
  40.                             'defaults' => array(
  41.                             ),
  42.                         ),
  43.                     ),
  44.                 ),
  45.             ),
  46.         ),
  47.     ),
  48.     'service_manager' => array(
  49.         'factories' => array(
  50.             'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory',
  51.         ),
  52.     ),
  53.     'translator' => array(
  54.         'locale' => 'en_US',
  55.         'translation_patterns' => array(
  56.             array(
  57.                 'type'     => 'gettext',
  58.                 'base_dir' => __DIR__ . '/../language',
  59.                 'pattern'  => '%s.mo',
  60.             ),
  61.         ),
  62.     ),
  63.     'controllers' => array(
  64.         'invokables' => array(
  65.             'MyAccount\Controller\Index' => 'MyAccount\Controller\IndexController',
  66.             'MyAccount\Controller\Sell' => 'MyAccount\Controller\SellController',
  67.         ),
  68.     ),
  69.     'view_manager' => array(
  70.         'display_not_found_reason' => true,
  71.         'display_exceptions'       => true,
  72.         'doctype'                  => 'HTML5',
  73.         'not_found_template'       => 'error/404',
  74.         'exception_template'       => 'error/index',
  75.         'template_map' => array(
  76.             'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
  77.             'error/404'               => __DIR__ . '/../view/error/404.phtml',
  78.             'error/index'             => __DIR__ . '/../view/error/index.phtml',
  79.         ),
  80.         'template_path_stack' => array(
  81.             __DIR__ . '/../view',
  82.         ),
  83.     ),
  84. );

En base a esto, cuando quiero ir a indexAction de SellController, accedo perfectamente de la siguiente forma: http://example.com/myaccount/sell/index o http://example.com/myaccount/sell

Y cuando ejecuto $this->url('myaccount', array('controller'=>'sell')); me devuelve "http://example.com/myaccount" y yo quiero que me devuelva "http://example.com/myaccount/sell".

¿Qué hago?, gracias :)