CodeIgniter에서 Symfony 2로 전환하고 있습니다. 누군가 다음 방법에 대한 예를 들어 주시겠습니까?
- 기본 URL 가져 오기 (경로 특정 부분이없는 URL)
- 이 변수를 모든 템플릿에서 사용할 수 있도록 twig 번들에 전역 적으로 전달합니다.
답변
이 루트 URL이 필요한 이유는 무엇입니까? 직접 절대 URL을 생성 할 수 없습니까?
{{ url('_demo_hello', { 'name': 'Thomas' }) }}
이 Twig 코드는 _demo_hello 경로에 대한 전체 http : // URL을 생성합니다.
사실, 웹 사이트의 기본 URL을 얻는 것은 홈페이지 경로의 전체 URL 만 얻는 것입니다.
{{ url('homepage') }}
( 홈페이지 또는 라우팅 파일에서 호출하는 이름).
답변
이제 나뭇 가지 템플릿에서 무료로 사용할 수 있습니다 (sf2 버전 2.0.14에서 테스트 됨).
{{ app.request.getBaseURL() }}
이후 Symfony 버전 (2.5에서 테스트 됨)에서는 다음을 시도하십시오.
{{ app.request.getSchemeAndHttpHost() }}
답변
새 요청 방법을 사용할 수 있습니다 getSchemeAndHttpHost()
.
{{ app.request.getSchemeAndHttpHost() }}
답변
Symfony v2.1부터 v4.1 이상까지 유효
Symfony 애플리케이션에 대한 기본 URL을 원하는 경우 라우터 경로 및 쿼리 문자열이없는 경우를 제외하고 작동 방식 과 유사하게 getSchemeAndHttpHost()
와 함께 연결 을 사용해야 합니다.getBaseUrl()
getUri()
{{ app.request.schemeAndHttpHost ~ app.request.baseUrl }}
예를 들어 Symfony 웹 사이트 URL이에있는 https://www.stackoverflow.com/app1/
경우 다음 두 메서드가 다음 값을 반환합니다.
getSchemeAndHttpHost
https://www.stackoverflow.com
getBaseUrl
/app1
참고 : URL에있는 경우 getBaseUrl()
스크립트 파일 이름 (예 :)을 포함합니다 /app.php
.
답변
기본 URL은 내부에 정의되어 Symfony\Component\Routing\RequestContext
있습니다.
다음과 같이 컨트롤러에서 가져올 수 있습니다.
$this->container->get('router')->getContext()->getBaseUrl()
답변
Symfony 2.3+의 경우 컨트롤러에서 기본 URL을 얻으려면
$this->get('request')->getSchemeAndHttpHost();
답변
<base href="{{ app.request.getSchemeAndHttpHost() }}"/>
또는 컨트롤러에서
$this->container->get('router')->getContext()->getSchemeAndHttpHost()