Vra

Ek sit altyd geneig om hierdie ingeboude Symfony funksies vergeet vir die maak van skakels.

Was dit nuttig?

Oplossing

As jou doel is om gebruikers-vriendelike URL's het in jou aansoek, gebruik die volgende benadering:

1) Skep 'n routing reël vir jou module / aksie in routing.yml lêer die aansoek se. Die volgende voorbeeld is 'n routing reël vir 'n aksie wat die mees onlangse vrae in 'n aansoek toon, in gebreke om bladsy 1 (met behulp van 'n pager):

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

2) Sodra die routing reël is ingestel, gebruik die url_for() helper in jou sjabloon om uitgaande URL'e formaat.

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

In hierdie voorbeeld, sal die volgende URL gebou:. http://myapp/questions/recent/1.html

3) Inkomende URLs (versoeke) sal ontleed word deur die routing stelsel, en as 'n patroon wedstryd is gevind in die routing reël opset, die naam van wildcards (dws. Die :/page gedeelte van die URL) sal versoek parameters word.

Jy kan ook die link_to() helper 'n URL gebruik om uitset sonder die gebruik van die HTML <a> tag.

Ander wenke

Dit advies is vir Symfony 1.0. Dit sal waarskynlik werk vir latere weergawes.

Binne jou sfaction klas :

string genUrl ($ parameters = array (), $ absolute = vals)

bv. $ This-> getController () -> genUrl ( 'yourmodule / youraction sleutel = waarde & key2 = waarde? ", True);

In 'n sjabloon :

Dit sal 'n normale skakel genereer.

string LINK_TO ($ naam, $ internal_uri, $ opsies = array ());

bv. LINK_TO ( "My skakel naam", "yourmodule / youraction sleutel = waarde & key2 = waarde?");

Verder, as jy eintlik wil 'n navraag string met daardie url, dit gebruik jy:

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

Andersins, dit gaan om te probeer om die roete dit as deel van die url en waarskynlik breek jou optrede.

Jy kan URL direk genereer sonder definieer die reël eers.

As jy wil URL in die optrede op te wek, kan jy gebruik generateUrl () helper:

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

As jy wil URL genereer in die templates, kan jy gebruik url_for () helper:

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

gestel $ absolute as waar / onwaar, nie vergeet eggo om te gebruik as jy wil om dit te vertoon.

As jy wil 'n skakel maak (iets soos <a href=""></a>), LINK_TO () helper sal doen.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top