it-swarm.com.de

Laravel: Holen Sie sich die Basis-URL

Einfache Frage, aber die Antwort scheint ziemlich schwierig zu sein. In Codeigniter konnte ich den URL-Helfer laden und dann einfach tun

echo base_url();

um die URL meiner Website zu erhalten. Gibt es in Laravel eine Entsprechung?

144
Inigo

Sie können die URL-Fassade verwenden, mit der Sie den URL-Generator aufrufen können

So können Sie tun:

URL::to('/');

Sie können auch den Anwendungscontainer verwenden:

$app->make('url')->to('/');
$app['url']->to('/');
App::make('url')->to('/');

Oder injizieren Sie den UrlGenerator:

<?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('/');
    }
}
230
hannesvdvreken

Laravel <5.2

echo url();

Laravel> = 5,2

echo url('/');

Hoffe das hilft dir

112

Für Laravel 5 verwende ich normalerweise:

<a href="{{ url('/path/uri') }}">Link Text</a>

Ich bin davon überzeugt, dass die Verwendung der url()-Funktion die gleiche Facade wie die URL::to() 

42
DrewT

Laravel bietet eine Reihe von Hilfsfunktionen und für Ihre Anforderungen können Sie dies ganz einfach tun 

verwenden Sie url () - Funktion von Laravel Helpers 

im Fall von Laravel 5.2 müssen Sie jedoch url ('/') verwenden.

hier ist die Liste aller anderen Hilfsfunktionen von Laravel

12
Akshay Khale

Diese:

echo url('/');

Und das:

echo asset('/');

beide haben die Heimat-URL in meinem Fall angezeigt :)

11
GGadash

Damit es mit nicht-hübschen URLs funktioniert, musste ich Folgendes tun:

asset('/');
10
dan-klasson

Aktualisierungen aus der Laravel-Release (5.7) -Dokumentation (2018) mit einigen weiteren url () - Funktionen und deren Verwendung.

Frage: Um die URL der Site in Laravel zu erhalten? 

Dies ist eine Art allgemeine Frage, also können wir sie teilen.

1. Zugriff auf die Basis-URL

// Get the base URL.
echo url('');

// Get the app URL from configuration which we set in .env file.
echo config('app.url'); 

2. Zugriff auf die aktuelle URL

// 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. URLs für benannte Routen

// http://example.com/home
echo route('home');

4. URLs zu Assets (öffentlich)

// Get the URL to the assets, mostly the base url itself.
echo asset('');

5. Datei-URLs

use Illuminate\Support\Facades\Storage;

$url = Storage::url('file.jpg'); // stored in /storage/app/public
echo url($url);

Jede dieser Methoden kann auch über die URL-Fassade aufgerufen werden:

use Illuminate\Support\Facades\URL;

echo URL::to(''); // Base URL
echo URL::current(); // Current URL

So rufen Sie diese Helper-Funktionen von Blade-Vorlagen (Ansichten) mit Verwendung auf.

// 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') }}">
5
Sobin Augustine

Eine andere Möglichkeit: {{ URL::route('index') }}

3
CptChaos

Sie können Fassaden oder Hilfsfunktionen wie folgt verwenden.

echo URL::to('/');
echo url();

Laravel verwendet Symfony Component for Request, interne Logik von Laravel gemäß folgend.

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;
}
1
Paresh Barad

Sie können auch URL :: to ('/') verwenden, um ein Bild in Laravel anzuzeigen. Siehe unten:

<img src="{{URL::to('/')}}/images/{{ $post->image }}" height="100" weight="100"> 

Angenommen, Ihr Bild wird unter "public/images" gespeichert.

Übrigens, wenn Ihre Route einen Namen hat wie:

Route::match(['get', 'post'], 'specialWay/edit', '[email protected]')->name('admin.spway.edit');

Sie können die Funktion route() folgendermaßen verwenden:

<form method="post" action="{{route('admin.spway.edit')}}" class="form form-horizontal" id="form-spway-edit">

Weitere nützliche Funktionen:

$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

1
闫鹏程

Um nur die von Ihnen konfigurierte App-URL zu erhalten, können Sie Config :: get ('app.url') verwenden.

1
Kenyon

Ich habe dies verwendet und es hat in Laravel 5.3.18 für mich funktioniert:

<?php echo URL::to('resources/assets/css/yourcssfile.css') ?>

WICHTIGER HINWEIS: Dies funktioniert nur, wenn Sie "public" bereits von Ihrer URL entfernt haben. Dazu können Sie dieses hilfreiche Tutorial auschecken.

1
ITWitch

Ich habe eine andere Möglichkeit gefunden, einfach die Basis-URL aufzurufen, um den Wert der Umgebungsvariablen APP_URL anzuzeigen

env('APP_URL')

hier wird die Basis-URL wie http: // domains_your // yours_website angezeigt. Achtung, es wird davon ausgegangen, dass Sie die Umgebungsvariable in der .env-Datei (die sich im Stammordner befindet) festgelegt haben.

0
Adeel