2016-05-10 13 views
5

Używam funkcji lokalizacji w mojej aplikacji internetowej. Ale chcę dodać App::getLocale() do url(). Tak na przykład, moim zdaniem, kiedy dodaję <a href="{{url('/admin')}}">link</a> chcę wyświetlić URL w HTML jako http://localhost/mysite/en/admin. Jak mogę to zrobić?Laravel 5.2 - Jak dodać przedrostek do istniejącej funkcji pomocnika url()?

Czy mogę dostosować wbudowaną funkcję pomocniczą URL?

+1

Mam teraz ten sam problem, czy możesz mi powiedzieć, jak to rozwiązałeś? – Tim

+1

@Tim, znalazłem rozwiązanie. Sprawdź moją odpowiedź. – Someone

Odpowiedz

0

enter image description here znalazłem rozwiązanie. Przetestowano to w wersji 5.3. Zadziałało! Może być przydatne dla innych. Warto więc akcja:

Wprowadź vendor\laravel\framework\src\Illuminate\Foundation\helpers.php i zmodyfikować kod tak:

Wystarczy dodać your prefix przed $path zmienna

+2

Nigdy nie edytuj klasy w folderze dostawcy. Ten folder jest w całości zarządzany przez kompozytora. Każda modyfikacja zostanie usunięta, gdy uruchomisz 'aktualizację kompozytora'. –

+0

Alexandre ma rację, ** nie rób tego **. Nigdy nie edytuj niczego w folderze dostawcy. Jak widać na zrzucie ekranu, funkcja 'url()' jest zdefiniowana tylko wtedy, gdy nie jest jeszcze zdefiniowana. Możesz zdefiniować własną funkcję 'url()' w pliku pomocniczym znajdującym się w twoim folderze projektu, a następnie umieścić go w sekcji 'autoload' twojego' composer.lock'. – Reddalo

1

url() metoda nie pozwala na to, ponieważ generuje adres URL dla dokładnej wartości podanej jako pierwszy argument. Jednak można uzyskać to, czego potrzebujesz, jeśli przełączyłeś się na metodę route() i zdefiniowałeś prefiks dla swoich tras.

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

Jeśli locale PL, to powyższe linia powinna dać URL jak /pl/admin

1

W laravel 5.4, należy użyć następującego

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

url tylko formatuje cała ścieżka do żądanego adresu, możesz dodać, co chcesz w nim.

Powiązane problemy