0

ここからINVOサンプルアプリを使用しています:

https://github.com/phalcon/invo

すべてのファイルをコピーし、データベースとベース URL を設定しました。

動作します。ログインできます。

ただし、リダイレクトの使用方法を学びたいと思っていました。

コントローラーの名前を変更せずcontact-usに代わりに使用したいと思います。contact

そこで、app/config フォルダー内に routes.php ファイルを作成し、これをその中に入れました。

<?php
$router = new Phalcon\Mvc\Router(false);

$router->add('/contact-us', array(
    'controller' => "contact",
    'action' => "index"
))->setName('contact');

$router->handle();
return $router;

そして、これをパブリックルートディレクトリのブートストラップファイル index.php に作成しました

$di = new \Phalcon\DI\FactoryDefault();

$di->set('router', function(){
    require __DIR__.'/../app/config/routes.php';
    return $router;
});

しかし、機能していません。アクセスしようとすると機能しますhttp://localhost/test/contact-usが、機能しなくhttp://localhost/test/contact-usなり、ホームページにリダイレクトされます。

私(ルートにコメント)がこれを行う場合:

/*$router->add('/contact-us', array(
    'controller' => "contact",
    'action' => "index"
))->setName('contact');*/

$router->handle();
return $router;

どちらhttp://localhost/test/contact-ushttp://localhost/test/contact-us機能しません;(。

コメントを外したら。contact-us動作しますが、動作contactしません。

私はそれがb / cで->setName('contact')あり、メモリまたはファイルに保存されていると思います。

元の状態に戻し、それを「設定解除」する方法は?

4

1 に答える 1

0

2 つのルートを作成でき、それぞれが機能します。

$router->add('/contact', array(
    'controller' => "contact",
    'action'     => "index"
));

$router->add('/contact-us', array(
    'controller' => "contact",
    'action'     => "index"
));

またはルートのグループを使用します。

したがって、ContactController があり、/contact url を使用してアクセスしたくない場合は、ルーターを DI コンテナーに追加する必要があります。その後、ページはルーター経由でのみ利用可能になり、デフォルトの /controller/action リクエスト形式は機能しません。

于 2014-07-04T15:59:10.787 に答える