2017-01-02 5 views
13

私は現在symfonyのカーネルとルーティングをカスタムフレームワーク内で使用していますが、私は不思議な問題に遭遇しました。同じルートの使用:このURLジェネレータのコードを使用してSymfony Urlログイン前とログイン後に同じルートから異なるURLを生成するジェネレータ

$collection->add('article_edit', new Route('/articles/edit/{alias}', array(
    '_controller' => 'AppBundle:Article:edit' 
))); 

$url = $this->generateUrl('article_edit',array('alias' => 'test')); 

がログインする前には、URL Generatorで生成

/記事が/編集/テスト

そして、ログイン後、

変更されて何もせずに

http://localhost/testsite/articles/edit/test

私は一貫して同じ結果を望んでいるので、ここで何が起きている可能性があります。

おかげ

+0

私が見る違いは、ログイン後にURLが 'ABSOLUTE_URL'に変わることです。しかし、デフォルトは 'ABSOLUTE_PATH'です。 '$ url = $ this-> generateUrl( 'article_edit'、array( 'alias' => 'test')、0);'ログイン後も返すものを見てください。 – Jeet

+0

@Jeet - URLタイプをABSOLUTE_PATHに変更しても、URLは引き続き別のURLを生成します。実際には、フォームを送信すると、$ _POST変数も使用されます。 –

+0

ログインの前後に送信するヘッダーを投稿してください。 –

答えて

0
私は「/記事/編集/テスト」と「 http://localhost/testsite/articles/edit/testは」ちょうどそれでサイトのURLの違いと同じURLであることを見ることができます

次のようにgenerateUrlメソッドを使用すると、常に同じURLが生成されます。それは "http://localhost/testsite/articles/edit/testは" 常に

$url = $this->generateUrl('article_edit',array('alias' => 'test', UrlGeneratorInterface::ABSOLUTE_URL)); 

はまた

use Symfony\Component\Routing\Generator\UrlGeneratorInterface; 
0

する app/config/services.yml

parameters: 
    router.request_context.host: www.yourdomain.com 
    router.request_context.scheme: http 
    router.request_context.base_url: /your/path 

詳細にあなたのホストを設定してみてください名前空間のセクションで、次のクラスを使用することを忘れていけない生成する必要があります。 https://symfony.com/doc/3.3/console/request_context.html

関連する問題