2017-01-02 12 views
13

मैं वर्तमान में कस्टम फ्रेमवर्क के भीतर सिम्फनी कर्नेल और रूटिंग का उपयोग कर रहा हूं और मैंने एक जिज्ञासा की समस्या में भाग लिया है। एक ही मार्ग का उपयोग करना:सिम्फनी यूआरएल जनरेटर लॉग इन से पहले और बाद में उसी रूट से अलग-अलग यूआरएल उत्पन्न करता है

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

इस URL जेनरेटर कोड का उपयोग करना

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

लॉगिन करने से पहले, यूआरएल जेनरेटर का उत्पादन

/लेख/संपादित करें/परीक्षण

और लॉगिन के बाद, यह

उत्पन्न करता है

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

कुछ भी बिना बदला जा रहा है, यहाँ क्या हो रहा हो सकता के बाद से मैं एक ही परिणाम लगातार चाहते हैं।

धन्यवाद

+0

मैं जो अंतर देखता हूं वह यूआरएल लॉगिन के बाद 'ABSOLUTE_URL' पर बदल जाता है। हालांकि, डिफ़ॉल्ट 'ABSOLUTE_PATH' है। 'Url = $ this-> generUrl ('article_edit', array ('alias' => 'test'), 0) आज़माएं; 'देखें कि लॉगिन के बाद भी यह आपके लिए क्या देता है। – Jeet

+0

@Jeet - यहां तक ​​कि जब मैं url प्रकार को ABSOLUTE_PATH में बदलता हूं तब भी यूआरएल अलग-अलग यूआरएल उत्पन्न करता है। असल में यह तब भी बदलता है जब मैं एक फॉर्म जमा करता हूं यानी $ _POST चर का उपयोग करता हूं। –

+0

कृपया लॉगिन करने से पहले और बाद में भेजे गए शीर्षलेख पोस्ट करें। –

उत्तर

0

मैं देख सकता हूँ कि "/ लेख/संपादित करें/परीक्षण" और "http://localhost/testsite/articles/edit/test" बस इसे में साइट यूआरएल के अंतर के साथ एक ही यूआरएल है।

यदि आप अपनी "जेनरयूआरएल" विधि का उपयोग करते हैं तो यह हमेशा एक ही यूआरएल उत्पन्न करेगा। यह उत्पन्न करनी चाहिए "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

संबंधित मुद्दे