2017-09-16 20 views
1

私のアプリケーションでは、コントローラで2番目のアクションを作成しました。私がURL http://local.domainでアプリケーションを呼び出すと、正しいページが得られ、正しいコントローラと呼ばれます。私はこの呼び出しhttp://local.domain/liga-futbol-1を行いたい場合しかし、それは動作しませんし、私はこのエラーを持っている:ZF3:アクションとビューが見つかりません

A 404 error occurred Page not found. The requested URL could not be matched by routing.

No Exception available

IndexController.php

namespace Stats\Controller; 

use Zend\Mvc\Controller\AbstractActionController; 

class IndexController extends AbstractActionController { 
    public function indexAction() 
    { 
     //This action serves the page 
     return []; 
    } 

    public function ligaFubtol1Action(){ 

     return []; 
    } } 

module.config.php

namespace Stats; 

use Zend\Router\Http\Segment; 
use Zend\ServiceManager\Factory\InvokableFactory; 

return [ 
    'controllers' => [ 
     'factories' => [ 
      Controller\IndexController::class => InvokableFactory::class, 
     ], 
    ], 
    'router' => [ 
     'routes' => [ 
      'home' => [ 
       'type' => 'Literal', 
       'options' => [ 
        // This works!!! => http://local.domain 
        'route' => '/', 
        'defaults' => [ 
         'controller' => Controller\IndexController::class, 
         'action'  => 'index', 
        ], 
       ], 
       'may_terminate' => true, 
       'child_routes' => [ 
        // This doesn't work!!! http://local.domain/liga-futbol-1 
        'liga-futbol-1' => [ 
         'type' => Segment::class, 
         'options' => [ 
          'route' => '/liga-futbol-1', 
          'defaults' => [ 
           'controller' => Controller\IndexController::class, 
           'action'  => 'ligaFutbol1' 
          ], 
         ], 
         'may_terminate' => true, 
         'child_routes' => [ 
         ], 
        ],      
       ], 
      ],  
     ], 
    ], 
    'view_manager' => [ 
     'display_not_found_reason' => true, 
     'display_exceptions'  => true, 
     'doctype'     => 'HTML5', 
     'not_found_template'  => 'error/404', 
     'exception_template'  => 'error/index', 
     'template_map' => [ 
      'layout/layout'   => __DIR__ . '/../view/layout/layout.phtml', 
      'stats/index/index'  => __DIR__ . '/../view/stats/index/index.phtml', 
      'error/404'    => __DIR__ . '/../view/error/404.phtml', 
      'error/index'    => __DIR__ . '/../view/error/index.phtml', 
     ], 
     'template_path_stack' => [ 
      __DIR__ . '/../view', 
     ], 
     /* 
     * Con este array de parámetros permitimos enviar datos y no mostrar vista 
     */ 
     'strategies' => [ 
      'ViewJsonStrategy', 
     ],   
    ], 
]; 

ディレクトリ:

enter image description here

私は "/ dir_project /データ/キャッシュ" で私のキャッシュをチェックして、何もありません。

私は間違っていますか?

答えて

3

homeルートのrouteオプションをご覧ください:/に設定されています。

  • home URL:/
  • liga-futbol-1 URL:結果で/liga-futbol-1

//liga-futbol-1はそのURLがの「合計」であるので、liga-futbol-1ルートは、homeルートの子ルートでありますhome/liga-futbol-1のURL。

あなたは/liga-futbol-1のようなだけで何かをしたい場合、2つのソリューションがあります

  1. homeルート(すなわちない子)のliga-futbol-1ルートの独立を行います。

    'routes' => [ 
        'home' => [ 
         'type' => Literal::class, 
         'options' => [ 
          'route' => '/', 
          'defaults' => [ 
           'controller' => Controller\IndexController::class, 
           'action'  => 'index' 
          ] 
         ] 
        ], 
        'liga-futbol-1' => [ 
         'type' => Segment::class, 
         'options' => [ 
          'route' => '/liga-futbol-1', 
          'defaults' => [ 
           'controller' => Controller\IndexController::class, 
           'action'  => 'ligaFutbol1' 
          ] 
         ] 
        ] 
    ] 
    
  2. /を削除liga-futbol-1routeオプションの最初から:

    'liga-futbol-1' => [ 
        'type' => Segment::class, 
        'options' => [ 
         'route' => 'liga-futbol-1', 
          'defaults' => [ 
           'controller' => Controller\IndexController::class, 
           'action'  => 'ligaFutbol1' 
          ] 
         ] 
        ] 
    
+0

とてもありがとう@gsc !!!感謝の100万! –

関連する問題