0

私は Kohana 3.3 を使用しており、次のディレクトリ構造を設定しています (+ 記号はフォルダーを意味し、• はファイルを意味します)。

+ modules
  + app-admin
    + classes
      + admin
        • Companies.php
        • Users.php
        • Locations.php
    + i18n
    + views
  + app-front
    + classes
    + i18n
    + views

「app-admin」モジュールには、次のルートが定義されています。

Route::set('admin default', 'admin')
    ->defaults(array(
        'directory'  => 'admin',
        'controller' => 'authentication',
        'action'     => 'login'
    ));
Route::set('admin', 'admin/<controller>(/<action>(/<id>))')
->defaults(array(
    'directory'  => 'admin'
));

これらのルートにより、「管理者」コントローラーなどにアクセスできます。

http://localhost/admin/companies
http://localhost/admin/companies/edit/2
http://localhost/admin/companies/add

これは問題なく動作します。次の構成を持つページネーション モジュール ( https://github.com/webking/kohana-pagination )をインストールしました。

'admin' => array(
        'current_page'      => array('source' => 'query_string', 'key' => 'page'), // source: "query_string" or "route"
        'total_items'       => 0,
        'items_per_page'    => 2,
        'view'              => 'admin/_partials/pagination',
        'auto_hide'         => FALSE,
        'first_page_in_url' => FALSE,
    )

これを行うと、次のエラーが発生します。

Kohana_Exception [ 0 ]: Required route parameter not passed: controller
SYSPATH\classes\Kohana\Route.php [ 599 ]

私は何を間違っていますか?

ありがとう、Z

4

1 に答える 1

0

「admin」モジュールの各コントローラー専用のルートを設定し、デフォルトの「コントローラー」値を次のように指定しました。

Route::set('admin users', 'admin/users(/<action>(/<id>))')
    ->defaults(array(
        'directory'  => 'admin',
        'controller' => 'users', // Provided a default value for <controller>
        'action'     => 'index'
    ));

そしてそれは仕事をしました、ページネーションは今うまくいっています。「管理者」の「キャッチオール」ルートがこれを行うと思いました。

于 2013-03-24T21:23:39.180 に答える