Laravel: Get base url

Proste pytanie, ale odpowiedź wydaje się dość trudna do zdobycia. W Codeigniter mogę załadować helpera url, a następnie po prostu zrobić

echo base_url();

Aby uzyskać adres URL mojej strony. Czy jest jakiś odpowiednik w Laravel?

Author: Moe Far, 2014-04-14

12 answers

Możesz użyć elewacji URL, która pozwala na wykonywanie wywołań do generatora URL

Więc możesz zrobić:

URL::to('/');

Możesz również użyć kontenera aplikacji:

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

Lub wstrzyknąć 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('/');
    }
}
 210
Author: hannesvdvreken,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-17 10:31:00

Laravel

echo url();

Laravel > = 5.2

echo url('/');
Mam nadzieję, że to ci pomoże]}
 100
Author: Nguyễn Thành Bồi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-07 22:03:48

Do Laravel 5 normalnie używam:

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

Rozumiem, że użycie funkcji url() powoduje wywołanie tego samego Facade co URL::to()

 39
Author: DrewT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-30 23:44:45

Laravel zapewnia kilka funkcji pomocniczych i dla Twoich wymagań możesz po prostu

Use url () function of Laravel Helpers

Ale w przypadku Laravel 5.2 będziesz musiał użyć url('/')

Tutaj znajduje się lista wszystkich innych funkcji pomocniczych Laravel

 11
Author: Akshay Khale,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-20 13:52:54

Aby uruchomić go z nie ładnymi URL - ami, musiałem to zrobić:

asset('/');
 10
Author: dan-klasson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-04 04:38:52

To:

echo url('/');

I to:

echo asset('/');

Oba wyświetlały domowy url w moim przypadku:)

 10
Author: GGadash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-11 02:07:59

Inna możliwość: {{ URL::route('index') }}

 3
Author: CptChaos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-30 17:50:58

Aby pobrać adres URL aplikacji, którą skonfigurowałeś, możesz użyć config:: get ('app.url')

 1
Author: Kenyon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-01 00:12:59

Użyłem tego i zadziałało u mnie w Laravel 5.3.18:

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

Ważna uwaga: będzie to działać tylko wtedy, gdy już usunąłeś "publiczny" ze swojego adresu URL. Aby to zrobić, możesz sprawdzić ten pomocny samouczek .

 1
Author: ITWitch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-17 10:31:45

Możesz również użyć URL:: to ( ' / ' ), aby wyświetlić obraz w Laravel. Proszę zobaczyć poniżej:

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

Załóżmy, że twój obraz jest przechowywany w "public / images".

 1
Author: Niladri Banerjee - Uttarpara,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-11 09:17:19

Przy okazji, jeśli Twoja trasa ma nazwę jak:

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

Możesz użyć route() funkcji w następujący sposób:

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

Inne przydatne funkcje:

$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
Author: 闫鹏程,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-27 09:34:57

Możesz użyć funkcji fasady lub pomocnika, jak poniżej.

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

Laravel używając komponentu Symfony do żądania, logiki wewnętrznej Laravela zgodnie z podążam.

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
Author: Paresh Barad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-03 10:52:53