7

以下は私のモジュール設定ファイルです

return array(
'controllers' => array(
    'invokables' => array(
        'RSMobile\Controller\User' => 'RSMobile\Controller\UserController',
    ),
),

// Routes for API calls
'router' => array(
    'routes' => array(

        'rsmobile' => array(
            'type' => 'segment',
            'options' => array(
                'route' => '/rsmobile',
                'defaults' => array(
                    'controller' => 'RSMobile\Controller\User',
                )
            ),

            // Child routes
            'child_routes' => array(
                // Route for "user" API
                'user' => array(
                    'type' => 'segment',
                    'options' => array(
                        'route' => '/user[/:id]',
                        'constraints' => array(
                                               'id'     => '[0-9a-zA-Z]+',
                                                              ),
                        'defaults' => array(
                            'controller' => 'RSMobile\Controller\User',
                        )
                    ),
                ),
          )

質問:

UserController ファイルで AbstractRestfulController を拡張しましたが、これを www.example.com/rsmobile/user?userid=1 で呼び出すと、get ではなくget-list が呼び出されます。

パス上の任意のライトが役立ちます

ありがとう

4

2 に答える 2

4

www.example.com/rsmobile/user?userid=1パターンのみを使用し、 を使用したくないと思いますwww.example.com/rsmobile/user/1

ではAbstractRestfulController、 デフォルト$identifierNameで に設定さidれています。パラメータのリストに見つからない場合は、メソッドidを呼び出しますgetList()。だからあなたができることは、あなたのコントローラー(拡張する必要がありますAbstractRestfulController)でコードの下に書くことです:

public function __construct() {
    $this->identifierName = 'userId'; // Override $identifierName value specified in AbstractRestfulController.
}
于 2013-12-31T06:19:18.030 に答える