2011-09-30 9 views
7

में आधार URL सेट करने के लिए जब मैंकैसे Yii फ्रेमवर्क

print_r(Yii::app()->request->baseUrl) 

करना मैं कोई रिक्त स्ट्रिंग मिलता है। वाईआई फोरम पर एक पोस्ट this is blank by default कहता है। मैं अपना डिफ़ॉल्ट मान कैसे बदल सकता हूं ताकि मैं पूर्ण यूआरएल का उपयोग कर सकूं?

+0

कौन सा yii संस्करण? और निर्देशिका जहां परियोजना है? क्या यह एक वेबपैप है? क्या आपने यिक का उपयोग किया है? –

+0

@DroidUser Yii संस्करण 1.1.7। मेरी निर्देशिका पेड़ यह है: '/ htdocs/संरक्षित/(वेब ​​अनुप्रयोग फ़ाइलें)' '/ lib/yii/(yii कोर फ़ाइलें)' यह एक वेबपैप है। मैंने यिक का उपयोग नहीं किया है। क्या इसे चलाने से baseUrl सेट करने का कोई तरीका है? मैंने वाईआई ढांचे की प्रारंभिक स्थापना नहीं की। –

+0

मेरे उत्तर में मैंने बताया है कि यियिक को कैसे चलाया जाए, आपको yii को इंस्टॉल करने की आवश्यकता नहीं है, बस इसे एक वेब सुलभ फ़ोल्डर में डालें, जैसा कि आने वाले रीडेमे में उल्लिखित है। –

उत्तर

12

जैसा कि उस मंच में पोस्ट कहता है, यह अलग-अलग प्लेटफॉर्म के लिए अलग हो सकता है, या यदि वेब ऐप स्थित नहीं है डिफ़ॉल्ट फ़ोल्डर में।
ये सब बातें मेरे लिए काम:

echo Yii::app()->request->baseUrl."<br/>" ; 
print_r(Yii::app()->request->baseUrl); 
echo "<br/>"; 
var_dump(Yii::app()->getBaseUrl(true)); 
echo "<br/>"; 
echo Yii::app()->request->getBaseUrl(true); 

मैं एक टर्मिनल में निम्न आदेश का उपयोग कर डिफ़ॉल्ट सेटिंग्स के साथ, वेब अनुप्रयोग बनाने के लिए yiic इस्तेमाल किया, yiic webapp /path/to/webapp
तो यह है कि वेब के लिए आवश्यक निर्देशिका संरचना उत्पन्न करता है ऐप, और डिफ़ॉल्ट कंकाल फ़ाइलों भी। इसे आज़माएं और फिर देखें कि यह कैसे काम करता है। मैं खुद yii के लिए नया हूँ।

संपादित करें:

यह समाधान सेशन के लिए काम किया है, लेकिन सही तरीका baseurl ecco's answer to this question से दिखाया गया है स्थापित किया जा सकता।

+0

'var_dump (Yii :: ऐप() -> अनुरोध-> baseUrl); var_dump (Yii :: एप्लिकेशन() -> getBaseUrl (सही)); var_dump (Yii :: ऐप() -> अनुरोध-> getBaseUrl (सत्य)); 'मुझे स्ट्रिंग (0) "" देता है, स्ट्रिंग (25) "http://www.MYURL.com", स्ट्रिंग (25) "http://www.MYURL.com" दिलचस्प –

+0

तो क्या आपने अपनी परियोजना को फिर से बनाने के लिए यिक का उपयोग किया? या आपको ये आपकी मूल कॉन्फ़िगरेशन के साथ मिला है, प्लस 'Yii :: ऐप() -> baseUrl' भी काम करता है। जो आपको मिल रहा है वह दिलचस्प है –

+0

मैंने अपनी वाईआई परियोजना शुरू नहीं की है, इसलिए मुझे नहीं पता। लेकिन मैं अपनी टीम से पूछूंगा। आपको लगता है कि मुझे उपरोक्त आउटपुट क्यों मिला? –

2

यह संभवतः खाली है क्योंकि आपकी बूटस्ट्रैप फ़ाइल (index.php) आपकी वेब रूट पर है। यदि यह नहीं था, तो आपको कुछ मूल्य देखना चाहिए। इसे बदलने से इसका उद्देश्य हार जाएगा।

आप की तरह का प्रयोग करेंगे:

href="<?php echo 'http://www.myhost.com' . Yii::app()->request->baseUrl; ?>/css/screen.css" 

जो ज्यादातर मामलों के लिए पथ बदल नहीं होगा, लेकिन अगर तुमने किया था, कहते हैं, उप-निर्देशिका के अंदर अपने Yii एप्लिकेशन लगाने का निर्णय लेते हैं, तो यह पोर्टेबल होगा। (उपयोगकर्ता को उसी मेजबान पर काम करने के लिए उपरोक्त http विधि और होस्टनाम को हटा दें।)

1

Yii :: एप्लिकेशन() -> baseurl उदाहरण के लिए index.php के लिए यूआरएल से सिर्फ एक रिश्तेदार पथ रिटर्न: 127.0.0.1/index.php रिटर्न '' 127.0.0.1/yii/index.php रिटर्न '/ yii'

31

आप डिफ़ॉल्ट मान बदलने के लिए /path/to/application/protected/config/main.php संपादित कर सकते हैं। एक अनुरोध घटक जोड़ें, और baseUrl porperty कॉन्फ़िगर करें।

return array(
    ... 
    'components' => array(
     ... 
     'request' => array(
      'baseUrl' => 'http://www.example.com', 
     ), 
    ), 
); 
+2

खुश मैंने यह पाया .... मैं शीर्ष स्तर सरणी में बेस यूआरएल सेट करने का प्रयास कर रहा था। धन्यवाद। –

0

आप यूआरएल सहायक उपयोग कर रहे हैं यूआरएल उत्पन्न करने के लिए, आप

'urlManager' => [  
     'baseUrl' => 'http://example.com', 

फिर UrlManager घटक को baseurl कुंजी सेट करने के लिए आप के रूप में यूआरएल सहायक का उपयोग करके संपूर्ण url बना सकते हैं, की आवश्यकता होगी

echo Url::to(['site/index', 'src' => 'ref1', '#' => 'name'], true); // output ===> http://example.com/index.php?r=site%2Findex&src=ref1#name

0

echo Yii::$app->baseUrl(true)
पर ध्यान दें कि सही पैरामीटर आवश्यक है।

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