所以我正在做一个 Silex 项目,它是一个支票簿登记簿。这个想法是账户有交易。我正在使用拥有控制器提供程序的方法,因此我正在安装提供程序。我很清楚,我可以为各自的控制器提供者挂载 /accounts 和 /transactions 。然而,由于逻辑上的交易是账户的孩子,我希望实现这种类型的 URL 结构:
/account/1
= 获取帐户 ID 1 的请求
/account/1/transaction/100
= 获取交易 ID 100 的请求,包括账户 ID 1 作为参数
提前致谢。
编辑:我没有提到我的控制器设置如下所示:
引导程序.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} 添加一个路由,但我不确定如何使用已安装的控制器提供程序来完成它,并且没有将事务控制器职责混合到帐户控制器提供程序中。