라 라벨 : 기본 URL 받기


182

간단한 질문이지만 답을 찾기가 매우 어려워 보입니다. Codeigniter에서 URL 도우미를로드 한 다음 간단히

echo base_url();

내 사이트의 URL을 가져옵니다. Laravel에 해당하는 것이 있습니까?

답변:


282

URL 생성기를 호출 할 수있는 URL 파사드를 사용할 수 있습니다.

그래서 당신은 할 수 있습니다 :

URL::to('/');

응용 프로그램 컨테이너를 사용할 수도 있습니다.

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

또는 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('/');
    }
}

3
그리고 예제에서 가능한 모양에도 불구하고 이것은 라 라벨의 루트 경로와 관련이 있으므로 설치 /something/하면 올바른 URL을 만들 수 있습니다.
ceejayoz

@deFreitas 및 #ceejayoz laravel 현지화와 함께 URL :: to를 사용하는 방법은 무엇입니까?
Mubashar Iqbal

1
@MubasharIqbal 질문과 {{URL::to('/my-page.html')}}의견을 이해했다면 echo URL::to('/my-page.html');코드 와 코드를 참조하십시오
deFreitas

내 경우에는 좋은 처리기 : <a class="button is-primary" href="<?= URL::to('/'); ?>/atencion/reporte" target="_blank">감사합니다!
joelmez4

156

라 라벨 <5.2

echo url();

라 라벨> = 5.2

echo url('/');

희망이 당신을 도울


4
코드 스 니펫 대신 설명을 포함하도록이 답변을 확장 할 수 있습니까?

2
시험 : 로컬에 사이트가 있습니다 : localhost / abc Codeigniter에서 : echo base_url (); => localhost / abc를 얻습니다 . Laravel에서 : echo url (); => localhost / abc 도 얻 습니다.
Nguyễn Thành Bồi

1
이것을 세분화 된 URL에 사용하십시오 : url (). '/'. \ Request :: segment (1). '/'. \ Request :: segment (2)
0x1ad2

20
5.2에서 더 이상 작동하지 않습니다. github.com/laravel/framework/issues/11479url('/') 그러나 대신 사용할 수 있습니다
4lun

1
asset('/')base href에 필요한 슬래시가 있기 때문에 나에게 더 좋습니다.
vintproykt

47

Laravel 5의 경우 일반적으로 다음을 사용합니다.

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

url()함수 를 사용 하는 것과 같은 것을 호출 한다는 것을 이해하고 Facade있습니다.URL::to()


4
참고 : 웹 사이트가 https를 통해 제공되는 secure_url()경우 동일한 방식으로 기능을 사용할 수 있으며,이 경우 https 링크가 생성됩니다. 사용하여 url()HTTPS 사이트에하는 것은 여전히 HTTP 링크를 생성합니다.
DrewT

1
이것은 나를 위해 일했습니다. secure_url () 구문도 알고 있으면 유용합니다. 감사.
jimmyplaysdrums

1
루멘 5.4를 사용하고 있습니다. 이 url()요청의 프로토콜에 따라 HTTP 또는 HTTPS 링크를 생성합니다. 반면에 secure_url()존재하지 않습니다. Laravel 5.4에서도이 변경이 이루어 졌습니까?
Andreas Linnert

아니요, Larvel 5.4의 일부입니다. 내가 루멘 사용한 적이 있기 때문에 정말 언급 할 수 있지만에 대한 5.4 Laravel 문서는 secure_url()여기에 있습니다 : laravel.com/docs/5.4/helpers#method-secure-url
DrewT

23

더 많은 url () 함수를 사용하여 2018 Laravel 릴리스 (5.7) 설명서에서 업데이트되었으며 사용법입니다.

질문 : Laravel에서 사이트 URL을 얻으려면?

이것은 일반적인 질문이므로 분할 할 수 있습니다.

1. 기본 URL에 액세스

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

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

2. 현재 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. 명명 된 경로의 URL

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

4. 자산에 대한 URL (공개)

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

5. 파일 URL

use Illuminate\Support\Facades\Storage;

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

이러한 각 메소드는 URL 파사드를 통해 액세스 할 수도 있습니다.

use Illuminate\Support\Facades\URL;

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

사용법과 함께 블레이드 템플릿 (보기)에서 이러한 도우미 함수를 호출하는 방법

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

17

예쁘지 않은 URL로 작동하게하려면 다음을 수행해야합니다.

asset('/');

3
내 필요에 따라 이것이 최고입니다<base href="{{ asset('/') }}" />
13:51에

당신에게 쿠도스! <base href="..."/>슬래시 로 인해 딱 맞습니다
vintproykt

13

라 라벨은 다양한 헬퍼 기능을 제공하며 요구 사항에 따라 간단하게

라 라벨 헬퍼의 url () 함수 사용

그러나 Laravel 5.2의 경우 url ( '/') 을 사용해야합니다

여기 Laravel의 다른 모든 도우미 기능의 목록입니다


@sambellerose 그리고 당신은 당신이 할 수있는 내부 폴더 / 파일에 액세스 하시겠습니까url('/css/style.css')
Akshay Khale

13

이:

echo url('/');

이:

echo asset('/');

둘 다 내 경우에는 홈 URL을 표시했습니다. :)


3

또 다른 가능성 : {{ URL::route('index') }}


이것이 실제로 작동하고 아무도 옵션을 제공하지 않았기 때문에 왜 이것이 다운 투표되었는지 확실하지 않습니까?
CptChaos

2
내 downvote가 아니지만 그 이유는 모든 앱에서 루트 경로의 이름이 "색인"인 것을 보장 할 수 없기 때문입니다.
Jonathan

3

URL :: to ( '/')를 사용하여 이미지를 Laravel에 표시 할 수도 있습니다. 아래를 참조하십시오:

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

이미지가 "공개 / 이미지"에 저장되어 있다고 가정하십시오.


3

앱 URL을 얻으려면 다음을 사용할 수 있습니다.

Config::get('app.url')

이 정의는 Laravel cli에서만 사용됩니다. app.url대체 것으로 보인다
월러스 Maxters에게

1
더 이상 env ( 'APP_URL')가 가장 좋은 옵션 일 것입니다.
Kenyon

2

나는 이것을 사용했고 Laravel 5.3.18에서 나를 위해 일했다 :

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

중요 사항 : URL에서 '공개'를 이미 제거한 경우에만 작동합니다. 이렇게하려면 이 유용한 자습서를 확인하십시오 .


2

그런데 경로 이름이 다음과 같은 경우

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

다음 route()과 같은 기능을 사용할 수 있습니다 .

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

다른 유용한 기능들 :

$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


2

이것을 확인하십시오-

<a href="{{url('/abc/xyz')}}">Go</a>

이것은 나를 위해 일하고 있으며 그것이 당신에게 도움이되기를 바랍니다.


1

다음과 같이 파사드 또는 도우미 기능을 사용할 수 있습니다.

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

요청에 Symfony 컴포넌트를 사용하는 Laravel, 다음과 같은 Laravel 내부 로직.

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;
}


0

laravel 5의 요청에서 얻을 수 있습니다.

request()->getSchemeAndHttpHost();

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.