1

最近サイレックスを使い始めました。アプリケーションの特定の機能を別の ControllerProviderInterace にグループ化しています (ログインと登録を一緒にするなど)。

私の問題は、これらの ControllerProvider が次のようなサブ URL の下に「マウント」されていることです。

$app->mount('/account', new Controller\Account() );

特定の URL を他の URL に「エイリアス」、書き換え、またはマップするにはどうすればよいですか。たとえば、次のマッピングが必要です。

/login -> /account/login
4

2 に答える 2

5

次のようなことができます。

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\HttpKernelInterface;

$app->match('/login', function (Request $request) use ($app) {
    $subRequest = $request->duplicate(null, null, null, null, null, array('REQUEST_URI' => '/account/login'));
    return $app->handle($subRequest, HttpKernelInterface::SUB_REQUEST);
});

私は実際にこれをテストしていないので、調整する必要があるかもしれません。しかし、それが私がとるアプローチです。基本的に転送コントローラー。

于 2012-02-02T22:56:18.287 に答える
1

船がこれで航海したかどうかはわかりませんが、ルートのすぐ下にマウントできます. 例えば...

$app->mount('/', new AuthenticationControllerProvider());

次に、AuthenticationControllerProvider でルートを指定できます。

$app->get('/login', function () use ($app) {
    // do login things
});

$app->get('/register', function () use ($app) {
    // do register things
});

他のルートがそれらを指すようにしたい場合は、これらに 301 でリダイレクトするルートを設定できます。

これが役立つことを願っています!

于 2012-10-20T06:32:06.647 に答える