Sizin açınızdan minimum kodlama ile bunu başarmak için bir ORM nesne yolu kullanabilirsiniz. Ben Doktrin'e konum üstlenmeye gidiyorum ama sen Propel iseniz uygulama (muhtemelen sadece sınıf olarak sfPropelRoute kullanarak) çok benzer olmalıdır. Uygulamanızın config / özel yol ekleyebilirsiniz routing.yml:
author_articles:
url: /authors/:author
param: { module: articles, action: author }
class: sfDoctrineRoute
options: { model: Article, type: list }
Not: URL / yazarlar / yerine / makaleler kullanılan / Bunu bu rota makaleler modülünde eylemlerden herhangi çakışabilir ama sizin config tercih ediyorum herhangi bir URL kullanmak için çekinmeyin olmaz istedi.
Yeni rota Symfony farkında yapmak için bu değişiklikleri kaydettikten sonra önbelleğini temizleyin. URL yazar parametre: Bu ne yaptı / * tüm URL'ler eşleşen / yazarlar almak ve eşleşen nesnelerin listesini üreten, makaleler modülün yazarı eylem yoluyla onları geçmek için app anlattı. Nesne rota Yukarıda sadece yapılandırma ile tüm otomatik olarak yapar.
Şimdi makaleleri modül eklenti yazarı eylem:
public function executeAuthor() {
$this->articles = $this->getRoute()->getObjects();
}
Şimdi eylem şablonu için bir değişken sorgu sonucu. $ Makaleleri dizi aracılığıyla authorSuccess.php şablon döngü içinde uygun gördüğünüz gibi.
Eğer sadece dinamik tam URL'leri oluşturmak için oluşturulan rota ile url_for yardımcısı kullanabileceğiniz bir yazarın adını kullanarak ana listeden bu rota link vermek için:
<a href="<?php echo url_for('@author_articles?author=' . $article['author']) ?>"><?php echo $article['author'] ?></a>
İşte bu kadar hepsi.