2016-11-03 22 views
0

私は地区が州に依存しています。つまり、各州ごとに異なる地区があります。例えば、 追加、編集、削除、キャンセル後に従属CRUDに戻る

enter image description here

私は新しい地区の追加]をクリックします enter image description here

は、以下のページが開かれた。 enter image description here

問題であることを[キャンセル]をクリックまたは地区を追加した後:(地区ずに、メインページが来ていますその必要がある)として:CA同様

enter image description here

あります編集と削除のse。 私はそれを解決しようとしました:選択された州のIDは、地区のIDとともに(編集/削除するために)渡されるべきです。 Addの場合は、1つのidだけが渡されるため、正常に動作します。しかし、編集/削除の場合には、それが動作しない州のIDと地区が両方

<a href="<?php echo $this->url('districts', 
        array('action'=>'edit', 'id' => $districts->id));?>">Edit</a> 
<a href="<?php echo $this->url('districts', 
        array('action'=>'delete', 'id' => $districts->id));?>">Delete</a> 

で渡すことができないのでmodule.config.php:

<?php 

namespace Admin; 

return array(
'router' => array(
    'routes' => array( 

     'profile' => array(
      'type' => 'Segment', 
      'may_terminate' => true, 
      'options' => array(
       'route' => '/profile[/:action][/:id]', 
       'constraints' => array(
        'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
        'id'  => '[0-9]+', 
       ), 
       'defaults' => array(
        'controller' => 'Admin\Controller\Profile', 
        'action' => 'index', 
       ), 
      ), 
     ), 

     'provinces' => array(
      'type' => 'Segment', 
      'may_terminate' => true, 
      'options' => array( 
       'route' => '/provinces[/:action][/:id]', 
       'constraints' => array(
        'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
        'id'  => '[0-9]+', 
       ), 
       'defaults' => array(
        'controller' => 'Admin\Controller\Provinces', 
        'action' => 'index', 
       ), 
      ), 
     ), 

     'districts' => array(
      'type' => 'Segment', 
      'may_terminate' => true, 
      'options' => array(
       'route' => '/districts[/:action][/:id]', 
       'constraints' => array(
        'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
        'id'  => '[0-9]+', 
       ), 
       'defaults' => array(
        'controller' => 'Admin\Controller\Districts', 
        'action' => 'index', 
       ), 
      ), 
     ), 



     'home' => array(
      'type' => 'Literal', 
      'options' => array(
       'route' => '/admin', 
       'defaults' => array(
        '__NAMESPACE__' => 'Admin\Controller', 
        'controller' => 'Index', 
        'action'  => 'index', 
       ), 
      ), 
      'may_terminate' => true, 
      'child_routes' => array(
       'default' => array(
        'type' => 'Segment', 
        'options' => array(
         'route' => '/[:controller[/:action]]', 
         'constraints' => array(
          'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 
          'action'  => '[a-zA-Z][a-zA-Z0-9_-]*', 
         ), 
         'defaults' => array(
         ), 
        ), 
       ), 
      ), 
     ), 

    ), 
), 
'service_manager' => array(
    'abstract_factories' => array(
     'Zend\Cache\Service\StorageCacheAbstractServiceFactory', 
     'Zend\Log\LoggerAbstractServiceFactory', 
    ), 
    'factories' => array(
     'translator' => 'Zend\Mvc\Service\TranslatorServiceFactory', 
     'navigation_admin' => 'Zend\Navigation\Service\DefaultNavigationFactory', 
    ), 
), 
'translator' => array(
    'locale' => 'en_US', 
    'translation_file_patterns' => array(
     array(
      'type'  => 'gettext', 
      'base_dir' => __DIR__ . '/../language', 
      'pattern' => '%s.mo', 
     ), 
    ), 
), 
'controllers' => array(
    'invokables' => array( 

     'Admin\Controller\Index' => 'Admin\Controller\IndexController', 
     'Admin\Controller\Profile' => 'Admin\Controller\ProfileController', 

     'Admin\Controller\Provinces' => 'Admin\Controller\ProvincesController', 
     'Admin\Controller\Districts' => 'Admin\Controller\DistrictsController', 

    ), 
), 
'view_manager' => array(
    'display_not_found_reason' => true, 
    'display_exceptions'  => true, 
    'doctype'     => 'HTML5', 
    'not_found_template'  => 'error/404', 
    'exception_template'  => 'error/index', 
    'template_map' => array(


     'layout/layout_admin'   => __DIR__ . '/../view/layout/layout.phtml', 
     'admin/index/index' => __DIR__ . '/../view/admin/index/index.phtml', 
     'error/404'    => __DIR__ . '/../view/error/404.phtml', 
     'error/index'    => __DIR__ . '/../view/error/index.phtml', 
    ), 
    'template_path_stack' => array(
     __DIR__ . '/../view', 
    ), 

    /* 
    'strategies' => array(
     'ViewJsonStrategy', 
    ), 
    */ 
), 

// Placeholder for console routes 
'console' => array(
    'router' => array(
     'routes' => array(
     ), 
    ), 
), 

'navigation_admin' => array(
    'default' => array(
     array(
      'label' => 'Home', 
      'route' => 'home', 
     ), 

     array(
      'label' => 'Profile', 
      'route' => 'profile', 
      'pages' => array( 
       array(
        'label' => 'Edit', 
        'route' => 'profile', 
        'action' => 'edit', 
       ), 
       array(
        'label' => 'Change Password', 
        'route' => 'profile', 
        'action' => 'changepassword', 
       ), 
      ), 
     ), 

     array(
      'label' => 'Provinces', 
      'route' => 'provinces', 
      'pages' => array(
       array(
        'label' => 'Add', 
        'route' => 'provinces', 
        'action' => 'add', 
       ), 
       array(
        'label' => 'Edit', 
        'route' => 'provinces', 
        'action' => 'edit', 
       ), 
       array(
        'label' => 'Delete', 
        'route' => 'provinces', 
        'action' => 'delete', 
       ), 
      ), 

     ), 


     array(
      'label' => 'Districts', 
      'route' => 'districts', 

      'pages' => array(
       array(
        'label' => 'Add', 
        'route' => 'districts', 
        'action' => 'add', 
       ), 
       array(
        'label' => 'Edit', 
        'route' => 'districts', 
        'action' => 'edit', 
       ), 
       array(
        'label' => 'Delete', 
        'route' => 'districts', 
        'action' => 'delete', 
       ), 
      ), 

     ), 



    ), 
), 
); 

この問題は、その地区のため、発生していますこの場合、州に依存している。州ごとに依存することなく、すべてのものは大丈夫です。

どうすればこの問題を解決できますか?私が仕事を続けるために、私に指導や提案をお願いします。

+0

ここに「_MODULE_/config/module.config.php」ファイルを貼り付けてください。 '_MODULE_'テキストは、コントローラとビューを配置したモジュール名に置き換える必要があります。 – ksoni

答えて

1

'district'ルートは 'id'を取るように設定されています。設定を下記に変更してください。

 'districts' => array(
      'type' => 'Segment', 
      'may_terminate' => true, 
      'options' => array(
       'route' => '/districts[/:action][/:id][/province_id/:province_id]', 
//or 
//'route' => '/districts[/:action][/:id][/:province_id]', 
       'constraints' => array(
        'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
        'id'  => '[0-9]+', 
       ), 
       'defaults' => array(
        'controller' => 'Admin\Controller\Districts', 
        'action' => 'index', 
       ), 
      ), 
     ), 

、あなたは「ビュー」を操作することのためにあなたが今「アクション」に「province_id」パラメータを持っている必要があり

<a href="<?php echo $this->url('districts', 
        array('action'=>'edit', 'id' => $districts->id,'province_id'=>$provinceId));?>">Edit</a> 

にURLを変更します。

関連する問題