Symfony'de Makaleler listesi sıralama

1 Cevap php

Ben tarih makalelerin bir listesini görüntülemek makaleler adlı bir modül var. Endeksinde, sadece makalenin tüm listeler bulunuyor.

Ya göre: Ama ben yazar tıklarsanız, örneğin, o zaman sadece o yazarın yazı görüntüleyen bir sayfaya götür (haberler / daniel ve url oldukça eski yapım) böylece bunu yapmak nasıl merak ediyorum Böyle yayın tarafından farklı bir alan. Açıkçası sorguları yapmak için biliyorum, ama ben bunlar için yeni şablon yapma ya da sadece ana sayfada parametrelerini değiştirmek ve onları kontrol edilmelidir eğer ben anlamıyorum.

1 Cevap

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.