2016-05-10 21 views
5

Uso la funzionalità di localizzazione nella mia applicazione web. Ma voglio aggiungere App::getLocale() a url(). Quindi, ad esempio, a mio avviso quando aggiungo <a href="{{url('/admin')}}">link</a> voglio visualizzare l'URL in HTML come http://localhost/mysite/en/admin. Come posso farlo?Laravel 5.2- Come aggiungere prefisso alla funzione helper url() esistente?

Posso personalizzare la funzione di supporto integrata URL?

+1

Ho lo stesso problema in questo momento, puoi dirmi come hai risolto questo? – Tim

+1

@Tim, ho trovato la soluzione. Controlla la mia risposta. – Someone

risposta

0

enter image description here ho trovato la soluzione. Testato in laravel 5.3. Ha funzionato! Potrebbe essere utile per gli altri. quindi vale la pena quota:

Inserisci vendor\laravel\framework\src\Illuminate\Foundation\helpers.php e modificare il codice del genere:

Basta aggiungere your prefix prima $path variabile

+2

Non modificare mai una classe nella cartella del fornitore. Questa cartella è interamente gestita dal compositore. Qualsiasi modifica al suo interno verrà cancellata quando si eseguirà "compositore update". –

+0

Alexandre ha ragione, ** non farlo **. Non modificare mai nulla all'interno della cartella del venditore. Come puoi vedere dallo screenshot, la funzione 'url()' è definita solo se non è già definita. Potresti definire la tua funzione 'url()' all'interno di un file helper che si trova nella cartella del tuo progetto e poi metterla nella sezione 'autoload' del tuo' compositore.lock'. – Reddalo

1

url() metodo non lo consente, in quanto genera l'URL per il valore esatto fornito come primo argomento. Tuttavia, è possibile ottenere ciò che è necessario se si passa al metodo route() e definito un prefisso per i percorsi.

// define a route group with a prefix in routes.php 
Route::group(['prefix' => App::getLocale()], function() { 
    Route::get('admin', ['as' => 'admin', 'uses' => '[email protected]']); 
}); 

// generate prefixed URL 
echo route('admin'); 

Se il locale è en, poi la linea di cui sopra dovrebbe darvi un URL come /it/admin

1

In laravel 5.4, utilizzare il seguente

{{ url('Your_Prefix', 'login') }} 

url solo formatta l'intero percorso per l'indirizzo richiesto, è possibile aggiungere tutto ciò che si desidera in esso.

Problemi correlati