2016-03-20 6 views
0

İki Doküman varlığım var, onlara Kutu ve Eşya diyelim. Bir kutu birden çok öğe içerir. Ben şuna benzer bir öğe görüntüleme için URL'leri istiyorum:Yönlendirme koşullarını, parametrelerden biri tarafından belirtilen Doktrin Varlığına dayalı olarak nasıl ayarlayabilirim?

Açıkçası ben ( item_id tarafından belirtilen) ürün box_id tarafından belirtilen kutuya ait değilse bir 404 hata mesajı göstermek istiyorum
/box/{box_id}/item/{item_id} 

URL. Bunu denetleyicilerindeki her eylemde bir denetim ekleyerek yapabilirdim, ancak daha sonra aynı kodu birçok kez yazmak zorunda kaldım.

Tüm işlevlerimde ifadeler (veya işlev çağrıları) varsa dağılması gerekmeden koşulu belirtmenin bir yolunu arıyorum. Daha karmaşık koşulları belirtmek için kullanılabilecek koşul alanı (yaml) hakkında okudum, ama oradan bir doktrin deposuna nasıl referans alacağımı tam olarak bilmiyorum.

Bunu yapmanın başka bir yolu var mı?

cevap

0

Bunu denetleyicilerdeki her eylemde bir denetim ekleyerek yapabilirdim, ancak daha sonra aynı kodu birçok kez yazmam gerekirdi.

Hayır, işlevler için kullandığımız şey budur. Bu nedenle, yalnızca tek satırında, ihtiyaç duyulan her eylem arasında yinelenir ve işlev, yeniden kullanılabilir kodu barındırır.

yapmanız gereken tek şey bir item_id ve box_id alır bir işlevi yazmak ve ilişkisine bağlıdır true veya false döndürür.

+0

Teşekkürler, ancak işlevlerin nasıl çalıştığını biliyorum. Bunu yapmanın bir yolu olup olmadığını bulmaya çalışıyordum. 'Condition' alanını kabul eden bir ParameterConverter oluşturmayı bitirdim, böylece sadece @ParamConverter ("item"), options = {"id": "item_id", "condition": "entity.getBox()) yazabilirim. .getId() == box_id "})' hangi IMHO her yerde işlev çağrıları eklemekten daha güzel görünüyor. – Size43

İlgili konular