1

だから私は小切手帳の登録簿であるSilexプロジェクトに取り組んでいます。アカウントにはトランザクションがあるという考え方です。私はコントローラープロバイダーを持つというアプローチを使用しているので、プロバイダーをマウントしています。それぞれのコントローラープロバイダーの/accountsと/transactionsをマウントできることは明らかです。ただし、論理的にはトランザクションはアカウントの子であるため、このタイプのURL構造を実現したいと考えていました。

/account/1=アカウントID1のリクエストを取得

/account/1/transaction/100=パラメータとしてアカウントID1を含むトランザクションID100のリクエストを取得します

前もって感謝します。

編集:私のコントローラーのセットアップがそのように見えることを言及しませんでした:

bootstrap.php:

$app->mount('/account', new AccountControllerProvider());
$app->mount('/transaction', new TransactionControllerProvider());

AccountControllerProvider.php:

$controllers->put('/', 'Mogaard\Checkbook\Controller\AccountController::createAction')
    ->bind('account_create');
$controllers->get('/{account}', 'Mogaard\Checkbook\Controller\AccountController::displayAction')
    ->convert('account', $accountProvider)
    ->bind('account_display');
$controllers->post('/{account}', 'Mogaard\Checkbook\Controller\AccountController::saveAction')
    ->convert('account', $accountProvider)
    ->bind('account_save');
$controllers->delete('/{account}', 'Mogaard\Checkbook\Controller\AccountController::deleteAction')
    ->convert('account', $accountProvider)
    ->bind('account_delete');

TransactionControllerProvider.php:

$controllers->put('/', 'Mogaard\Checkbook\Controller\TransactionController::createAction')
    ->bind('transaction_create');
$controllers->post('/{transaction}', 'Mogaard\Checkbook\Controller\TransactionController::saveAction')
    ->convert('transaction', $transactionProvider)
    ->bind('transaction_save');
$controllers->delete('/{transaction}', 'Mogaard\Checkbook\Controller\TransactionController::deleteAction')
    ->convert('transaction', $transactionProvider)
    ->bind('transaction_delete');

/ account / {account} / transaction / {transaction}のルートを追加しようとしていますが、マウントされたコントローラープロバイダーを使用し、トランザクションコントローラーの責任をアカウントコントローラープロバイダーに混在させずに追加する方法がわかりません。

4

1 に答える 1

4

Igorwが提案したように、私はこれを回答として投稿します(投稿者がコメントを読まなかった場合に備えて):

私はサイレックスにあまり慣れていないかもしれませんが、あなたは試しましたか

$app->get('/account/{accId}/transaction/{transId}'...)

編集:

そのルートをトレースしたら、に転送 /account/{accId}/transaction/{transId}できます/transaction/account/$accId/transaction/$transId。と同じように、ユーザーには表示され.htaccessません。または、を使用して、.htaccessこれらのルートを自分に最適なルートにマッピングすることもできます。

于 2012-10-24T13:33:03.713 に答える