Ben her zaman bağlantıları yapmak için bu yerleşik symfony işlevleri unutma eğilimindedir.
Amacınız uygulama boyunca kullanıcı dostu URL'ler var ise, aşağıdaki yaklaşım kullanın:
1) Uygulamanın routing.yml dosyasında modül / eylem için bir yönlendirme kuralı oluşturun. Aşağıdaki örnek, (a çağrı cihazı kullanarak) sayfa 1 varsaymak, bir uygulamada en son soruları gösteren bir eylem için bir yönlendirme kural şudur:
recent_questions:
url: questions/recent/:page
param: { module: questions, action: recent, page: 1 }
Yönlendirme kuralı ayarlandıktan sonra 2), giden URL'leri biçimlendirmek için şablonunda url_for()
yardımcıyı kullanın.
<a href="<?php echo url_for('questions/recent?page=1') ?>">Recent Questions</a>
Bu örnekte, aşağıdaki URL inşa edilecektir: http://myapp/questions/recent/1.html
.
3) Gelen URL'ler (istekleri) yönlendirme sistem tarafından analiz edilecek ve bir model maç yönlendirme kuralı yapılandırmada bulunursa, adlandırılmış joker ({[(0 yani)]} URL bölümü) isteği olacaktır parametreleri.
Ayrıca HTML <a>
etiketi kullanmadan çıkışına bir URL için link_to()
yardımcısı kullanabilirsiniz.
Bu tavsiye Symfony 1.0 içindir. Muhtemelen daha sonraki sürümleri için çalışır.
Within your sfAction class:
dize genUrl ($ parametreler = array (), $ mutlak = false)
eg. $this->getController()->genUrl('yourmodule/youraction?key=value&key2=value', true);
In a template:
Bu normal bir bağlantı oluşturur.
dize link_to ($ isim, $ internal_uri, $ seçenekler = array ());
eg. link_to('My link name', 'yourmodule/youraction?key=value&key2=value');
Önce kuralı tanımlamak olmadan doğrudan URL oluşturabilir.
Eğer eylemler URL oluşturmak istiyorsanız, generateUrl() yardımcı kullanabilirsiniz:
$this->generateUrl('default', array('module'=>'[ModuleName]','action'=>'[ActionName]'))
Eğer şablonları URL oluşturmak istiyorsanız, url_for() yardımcı kullanabilirsiniz:
url_for('[ModuleName]/[ActionName]', $absolute)
Bunu görüntülemek istiyorsanız yankı kullanmayı unutun, doğru / yanlış olarak mutlak $ ayarlayın.
Ama bir link (gibi bir şey <a href=""></a>
), link_to() yardımcı yapacağız yapmak istiyorsanız.