그래서 저는 수표 책 레지스터 인 Silex 프로젝트를 진행하고 있습니다. 계정에 거래가 있다는 아이디어가 있습니다. 컨트롤러 공급자를 사용하는 방식을 사용하고 있으므로 공급자를 탑재하고 있습니다. 각 컨트롤러 공급자에 대한/accounts 및/transaction을 마운트 할 수 있다는 것은 분명합니다. 논리적 때문에 거래는하지만, 내가 URL 구조의이 유형을 달성하기 바라고, 계정의 자녀 :silex에 "sub-controllers"를 어떻게 마운트 할 수 있습니까?
/account/1
= 계정 ID에 대한 요청을 얻을 1
/account/1/transaction/100
= 계정 ID 1을 포함하여 트랜잭션 ID (100)에 대한 요청을받을 매개 변수로
미리 감사드립니다.
편집 : 나는 내 컨트롤러 설정이 보이는 언급하는 데 실패 등 :
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}에 대한 경로를 추가하려고하지만 탑재 된 컨트롤러 공급자를 사용하거나 트랜잭션 컨트롤러 책임을 계정 컨트롤러 공급자와 섞지 않고 수행하는 방법을 잘 모릅니다.
나는 silex에 너무 익숙하지 않을 수도 있지만'$ app-> get ('/ account/{accId}/transaction/{transId}') '을 시도 했습니까? – Korcholis
@ Korcholis 답변으로 게시해야합니다. ;-) – igorw
@Igorw 이것은 다소 재현하기에는 어색하지만 어쨌든 ... – Korcholis