문제

나는 항상 이러한 내장 기능을 잊어버리는 경향이 있습니다. 심포니 링크를 만드는 기능.

도움이 되었습니까?

해결책

애플리케이션 전체에서 사용자 친화적인 URL을 갖는 것이 목표라면 다음 접근 방식을 사용하세요.

1) 애플리케이션의 Routing.yml 파일에서 모듈/작업에 대한 라우팅 규칙을 만듭니다.다음 예는 애플리케이션의 가장 최근 질문을 표시하는 작업에 대한 라우팅 규칙이며, 기본값은 1페이지입니다(페이저 사용).

recent_questions:
   url:    questions/recent/:page
   param:  { module: questions, action: recent, page: 1 }

2) 라우팅 규칙이 설정되면 다음을 사용하십시오. url_for() 템플릿의 도우미를 사용하여 나가는 URL의 형식을 지정하세요.

<a href="<?php echo url_for('questions/recent?page=1') ?>">Recent Questions</a>

이 예에서는 다음 URL이 구성됩니다. http://myapp/questions/recent/1.html.

3) 수신 URL(요청)은 라우팅 시스템에 의해 분석되며, 라우팅 규칙 구성에서 패턴 일치가 발견되면 명명된 와일드카드(예:그만큼 :/page 부분)이 요청 매개변수가 됩니다.

다음을 사용할 수도 있습니다. link_to() HTML을 사용하지 않고 URL을 출력하는 도우미 <a> 꼬리표.

다른 팁

이 조언은 Symfony 1.0에 대한 것입니다.아마도 이후 버전에서는 작동할 것입니다.

sfAction 클래스 내에서:

문자열 genUrl($parameters = array(), $absolute = false)

예.$this->getController()->genUrl('yourmodule/youraction?key=value&key2=value', true);

템플릿에서:

그러면 일반 링크가 생성됩니다.

string link_to($name, $internal_uri, $options = array());

예.link_to('내 링크 이름', 'yourmodule/youraction?key=value&key2=value');

또한 해당 URL이 포함된 쿼리 문자열을 실제로 원하는 경우 다음을 사용합니다.

link_to('My link name', 'yourmodule/youraction?key=value&key2=value',array('query_string'=>'page=2'));

그렇지 않으면 URL의 일부로 라우팅하려고 시도하여 작업이 중단될 수 있습니다.

먼저 규칙을 정의하지 않고도 URL을 직접 생성할 수 있습니다.

작업에서 URL을 생성하려면 다음을 사용할 수 있습니다. 생성Url() 돕는 사람:

$this->generateUrl('default', array('module'=>'[ModuleName]','action'=>'[ActionName]'))

템플릿에서 URL을 생성하려면 다음을 사용할 수 있습니다. url_for() 돕는 사람:

url_for('[ModuleName]/[ActionName]', $absolute)

$absolute를 true/false로 설정하고, 표시하려면 echo를 사용하는 것을 잊지 마세요.

하지만 만들고 싶다면 링크 (뭔가 <a href=""></a>), 다음으로 연결() 도우미가 할게.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top