2011-12-24 19 views
10

मैं वाईआई का उपयोग कर रहा हूं।
अगर मेरे यूआरएल है http://localhost/evengee/event/page/id/2/sfn+master/?tab=3 मेरे वास्तविक यूआरएल (फ़ाइल पथ) केवल http://localhost/evengee
है मैं कैसे प्राप्त होता है, अधिमानतः ध्यान में रखते हुए:मैं वाईआई में पैरा के बिना वर्तमान यूआरएल कैसे प्राप्त करूं?

  1. पूर्ण यूआरएल स्पष्ट मानकों http://localhost/evengee/event/page/id/2/sfn+master/
बिना http://localhost/evengee/event/page/id/2/sfn+master/?tab=3
  • यूआरएल

    मुझे पता है कि मैं str_replace को विभाजित/विस्फोट कर सकता हूं? और $ _SERVER का उपयोग करें। वाईआई देशी विधियों का उपयोग करना पसंद करेंगे।

  • उत्तर

    17

    के लिए: पैरामीटर के बिना

    • पूर्ण URL (http://localhost/even/page/id/2/?t=3) Yii::app()->request->getUrl() उपयोग करते हैं,

    • यूआरएल (http://localhost/even/page/id/2/ उपयोग Yii::app()->request->getPathInfo()

    दूसरा आपको स्कीमा, सर्वर और क्वेरी स्ट्रिंग के बिना यूआरएल देगा। यह काफी अच्छा लगता है।

    +3

    मैं 'Yii :: ऐप() -> अनुरोध-> getUrl()' कोशिश करता हूं, लेकिन यह डोमेन नाम वापस नहीं आया। – GusDeCooL

    +0

    यदि आप पूर्ण डोमेन नाम चाहते हैं तो createAbsoluteUrl का उपयोग करें। '$ this-> createAbsoluteUrl (Yii :: ऐप() -> अनुरोध-> getUrl());' या 'Yii :: ऐप() -> createAbsoluteUrl (Yii :: ऐप() -> अनुरोध-> getUrl()); ' –

    4

    पूर्ण URL पाने के लिए, CHttpRequest Yii::app()->request->getRequestUrl();

    की getRequestUrl() विधि का उपयोग आप CApplication तरीकों से वर्तमान पृष्ठ के नियंत्रक, मॉड्यूल और कार्रवाई का नाम प्राप्त कर सकते हैं Yii::app()->getController()->id; //gets you the controller id

    Yii::app()->getController()->getAction()->id; //gets you the action id

    आप CAPplication

    की बेसURL संपत्ति का उपयोग कर एक यूआरएल एक साथ टुकड़े कर सकते हैं

    Yii::app()->baseURL

    +4

    CHttpRequest और इसके व्यवहार में "getRequestUrl" नामक विधि या बंद नहीं है। यह 'i' नहीं होना चाहिए 'एल' – glyph

    +0

    यह वाईआई :: ऐप() -> अनुरोध-> getUrl() होना चाहिए; –