Question simple, mais la réponse semble assez difficile à trouver. Dans Codeigniter, je pouvais charger l’aide url puis faire simplement
echo base_url();
pour obtenir l'URL de mon site. Y a-t-il un équivalent à Laravel?
Vous pouvez utiliser la façade URL qui vous permet d’appeler le générateur URL .
Alors tu peux faire:
URL::to('/');
Vous pouvez également utiliser le conteneur d'application:
$app->make('url')->to('/');
$app['url']->to('/');
App::make('url')->to('/');
Ou injectez le générateur d’URL:
<?php
namespace Vendor\Your\Class\Namespace;
use Illuminate\Routing\UrlGenerator;
class Classname
{
protected $url;
public function __construct(UrlGenerator $url)
{
$this->url = $url;
}
public function methodName()
{
$this->url->to('/');
}
}
Laravel <5.2
echo url();
Laravel> = 5.2
echo url('/');
J'espère que cela vous aide
Pour Laravel 5, j'utilise normalement:
<a href="{{ url('/path/uri') }}">Link Text</a>
Je crois comprendre que l’utilisation de la fonction url()
appelle la même Facade
que URL::to()
Laravel fournit un tas de fonctions d’aide et pour vos besoins vous pouvez simplement
utiliser la fonction url () de Laravel Helpers
mais dans le cas de Laravel 5.2, vous devrez utiliser url ('/')
here est la liste de toutes les autres fonctions d'assistance de Laravel
Ce:
echo url('/');
Et ça:
echo asset('/');
les deux ont affiché l'URL de la maison dans mon cas :)
Pour que cela fonctionne avec des URL non jolies, je devais le faire:
asset('/');
Mises à jour de la documentation de la version 2018 de Laravel (5.7) avec quelques fonctions supplémentaires et son utilisation.
Question: Pour obtenir l'URL du site dans Laravel?
C'est une sorte de question générale, nous pouvons donc la scinder.
1. Accéder à l'URL de base
// Get the base URL.
echo url('');
// Get the app URL from configuration which we set in .env file.
echo config('app.url');
2. Accéder à l'URL actuelle
// Get the current URL without the query string.
echo url()->current();
// Get the current URL including the query string.
echo url()->full();
// Get the full URL for the previous request.
echo url()->previous();
3. URL pour les itinéraires nommés
// http://example.com/home
echo route('home');
4. URLs at Assets (Public)
// Get the URL to the assets, mostly the base url itself.
echo asset('');
5. URL de fichiers
use Illuminate\Support\Facades\Storage;
$url = Storage::url('file.jpg'); // stored in /storage/app/public
echo url($url);
Chacune de ces méthodes est également accessible via la façade d'URL:
use Illuminate\Support\Facades\URL;
echo URL::to(''); // Base URL
echo URL::current(); // Current URL
Comment appeler ces fonctions d'assistance à partir de la lame Template (Views) avec utilisation.
// http://example.com/login
{{ url('/login') }}
// http://example.com/css/app.css
{{ asset('css/app.css') }}
// http://example.com/login
{{ route('login') }}
// usage
<!-- Styles -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
<!-- Login link -->
<a class="nav-link" href="{{ route('login') }}">Login</a>
<!-- Login Post URL -->
<form method="POST" action="{{ url('/login') }}">
Une autre possibilité: {{ URL::route('index') }}
Vous pouvez utiliser des façades ou une fonction d'assistance comme suit.
echo URL::to('/');
echo url();
Laravel utilisant Symfony Component for Request, logique interne de Laravel selon Suivant.
namespace Symfony\Component\HttpFoundation;
/**
* {@inheritdoc}
*/
protected function prepareBaseUrl()
{
$baseUrl = $this->server->get('SCRIPT_NAME');
if (false === strpos($this->server->get('REQUEST_URI'), $baseUrl)) {
// assume mod_rewrite
return rtrim(dirname($baseUrl), '/\\');
}
return $baseUrl;
}
Vous pouvez également utiliser URL :: to ('/') pour afficher une image dans Laravel. S'il vous plaît voir ci-dessous:
<img src="{{URL::to('/')}}/images/{{ $post->image }}" height="100" weight="100">
Supposons que votre image soit stockée sous "public/images".
À propos, si votre itinéraire a un nom comme:
Route::match(['get', 'post'], 'specialWay/edit', 'SpecialwayController@edit')->name('admin.spway.edit');
Vous pouvez utiliser la fonction route()
comme ceci:
<form method="post" action="{{route('admin.spway.edit')}}" class="form form-horizontal" id="form-spway-edit">
Autres fonctions utiles:
$uri = $request->path();
$url = $request->url();
$url = $request->fullUrl();
asset()
app_path();
// ...
https://github.com/laravel/framework/blob/5.4/src/Illuminate/Foundation/helpers.php
Pour obtenir simplement l'URL de l'application que vous avez configurée, vous pouvez utiliser Config :: get ('app.url').
Je l'ai utilisé et cela a fonctionné pour moi dans Laravel 5.3.18:
<?php echo URL::to('resources/assets/css/yourcssfile.css') ?>
REMARQUE IMPORTANTE: Cela ne fonctionnera que si vous avez déjà supprimé "public" de votre URL. Pour ce faire, vous pouvez consulter ce tutoriel utile .
J'ai trouvé un autre moyen de simplement obtenir l'URL de base pour afficher la valeur de la variable d'environnement APP_URL
env('APP_URL')
qui affichera l’URL de base comme http: // domain_your // yours_website . Méfiez-vous, cela suppose que vous avez défini la variable d'environnement dans le fichier .env (présent dans le dossier racine).