2017-02-07 1 views
0

하위 폴더에 laravel을 설치했습니다.URL ::은 laravel 5에서 어떻게 작동합니까?

foo.com/laravel/

지금

foo.com/에 대한 모든 호출은 다른 응용 프로그램에 전달됩니다.

모든 예를 들어

foo.com/laravel/baz이

Route::get('/baz', function(){...});

처럼 여전히 루트

을 laravel 지시가 호출하며

를 작동 블레이드에서 이러한 경로에 URL::to을 사용할 때 하위 링크도 작동합니다.

URL::to 전자 메일에서 작동하지 않습니다

하지만 전자 메일에 이렇게 예 :

<a href="{{URL::to('/baz')}}">bippo</a> 

결과 URL이

foo.com/baz

을하지 foo.com/laravel/baz

이것이 내 질문으로 이어집니다. URL::to은 어떻게 작동합니까? 어떻게 작동시킬 수 있습니까? 내가 원하는대로? 예 : URL을 항상 설치 루트로 리턴합니다.

+0

도우미를 만들고 자신 만의 'urlTo ($ param)'을 정의하고 laravel url을 사용하여 내부 리디렉션을 할 수 있습니다. 내가 도움이된다면 나는 그것을 쓸 수있다. – EddyTheDove

답변

2

자세한 내용은 vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php을 확인하실 수 있습니다. 단, Laravel의 URL 생성기는 Request 개체 (현재 웹 요청)를 사용하며 전자 메일의 경우 웹 요청이 전혀 없습니다.

그런 이유로 /laravel 접두사가 표시되지 않습니다. 그 문맥에서 접할 수있는 방법은 없습니다.

쉬운 해결 방법은 config/app.php에서 'url'을 정의하고 url() 도우미 또는 URL facade 대신 config ('app.url')로 접두사 URL을 정의하는 것입니다. 적어도 전자 메일 (어쩌면 모든 곳).

요약하면 이것은 Laravel의 문제가 아니며 웹 요청/HTTP 프로토콜의 특성과 더 관련이 있습니다.

+0

실제로 나는 laravel이 이것에 대한 미리 정의 된 설정을 가지고 있다고 생각한다. 'env ('APP_URL ')' – Toskan

0

URL :: to()는 아래 링크에서 이와 같이 작동합니다. 자신을위한 https://medium.com/@zwacky/laravels-url-to-vs-url-asset-fd427ed6f7ef#.ktwxwdjxz

https://cdn-images-1.medium.com/max/800/1 *이 xD1x7OeXU5NNGwfKWsvpcw.png

확인하시기 바랍니다.

to() 함수에서 경로를 가져 와서 경로 파일에서 유효한 경로인지 확인한 다음 해당 경로에 대한 기능 경로를 만듭니다. 그리고 질문하신 내용에 대해 왜 그렇게하고 싶지 않은지 모르겠습니다. 성취하고자하는 것을 정교하게한다면 어쩌면 우리가 도울 수 있습니다.

관련 문제