2011-09-30 19 views
7

Quando faccioCome impostare URL di base in Yii Framework

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

ottengo una stringa vuota. Un post sul forum Yii dice this is blank by default. Come posso modificare il suo valore predefinito in modo da poter utilizzare URL assoluti?

+0

quale versione di yii? e la directory in cui si trova il progetto? è una webapp? hai usato yiic? –

+0

@DroidUser Yii Versione 1.1.7. La mia struttura di directory è la seguente: '/ htdocs/protected/(file di applicazioni Web)' '/ lib/yii/(file core yii)' È una webapp. Non ho usato lo yiic. C'è un modo per impostare baseUrl eseguendolo? Non ho fatto l'installazione iniziale del framework Yii. –

+0

nella mia risposta ho menzionato come eseguire yiic, non è necessario installare yii come tale, basta metterlo in una cartella accessibile web, come menzionato nel readme che segue. –

risposta

12

Come dice il post in quel forum, potrebbe essere diverso per piattaforme diverse, o se l'app web non si trova nella cartella predefinita.
Tutte queste cose funzionano per me:

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); 

ho usato yiic per creare l'applicazione web, con le impostazioni predefinite utilizzando il seguente comando in un terminale, yiic webapp /path/to/webapp
Così che genera la struttura di directory necessaria per il web app e anche i file skeleton predefiniti. Provalo e poi guarda come funziona. Sono nuovo per me stesso.

Edit:

Questa soluzione potrebbe aver lavorato per la op, ma i baseurl modo corretto può essere impostato è dimostrato dal ecco's answer to this question.

+0

'var_dump (Yii :: app() -> request-> baseUrl); var_dump (Yii :: app() -> getBaseURL (true)); var_dump (Yii :: app() -> request-> getBaseUrl (true)); 'Dammi stringa (0)" ", string (25)" http://www.MYURL.com ", stringa (25) "http://www.MYURL.com" Interessante –

+0

così hai usato yiic per ricreare il tuo progetto? o hai questi con la tua configurazione originale ?, inoltre 'Yii :: app() -> baseUrl' funziona anche. cosa stai diventando IS interessante –

+0

Non ho iniziato il nostro progetto Yii quindi non lo so. Ma chiederò alla mia squadra. Perché pensi che abbia ottenuto l'output sopra? –

2

È molto probabile vuoto perché il file di bootstrap (index.php) si trova nella tua web root. Se non lo fosse, dovresti vedere qualche valore. Cambiarlo avrebbe sconfitto il suo scopo.

si può usare come:

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

che per la maggior parte dei casi non cambierebbe il percorso, ma se l'avete fatto, per esempio, decidere di mettere il vostro Yii applicazione all'interno di una sottodirectory, allora sarebbe portatile. (Basta rimuovere il metodo http e il nome host in alto per farlo funzionare sullo stesso host in cui si trova l'utente.)

1

Yii :: app() -> baseurl restituisce solo un percorso relativo dall'URL a index.php ad esempio: '' 127.0.0.1/yii/index.php 127.0.0.1/index.php rendimenti restituisce '/ yii'

31

È possibile modificare /path/to/application/protected/config/main.php per modificare il valore predefinito. Aggiungi un componente di richiesta e configura la funzionalità di baseUrl.

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

felice di averlo trovato .... Stavo tentando di impostare l'url di base nell'array di primo livello. Grazie. –

0

Se si utilizza URL helper per generare gli URL, è necessario impostare la chiave baseurl alla componente UrlManager

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

Quindi è possibile creare URL assoluto utilizzando URL aiutante come,

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

0

provare echo Yii::$app->baseUrl(true)
Si noti che il vero parametro è ciò che serve.

Problemi correlati