में एक्सेस रिपोजिटरी फ़ंक्शंस मान लें कि मेरे डेटाबेस में दो टेबल हैं: खरगोश और गाजर। खरगोशों में 0 या गुणक गाजर हो सकते हैं और एक गाजर एक खरगोश से संबंधित होता है। यह उन दो तालिकाओं के बीच 1, एन संबंध है।Symfony2 - इकाई
मेरे पास दो इकाइयां, खरगोश और गाजर हैं।
मेरे पास मेरे टेम्पलेट में पारित खरगोशों की एक श्रृंखला है और मैं प्रत्येक खरगोश से विशिष्ट गाजर उन्हें एक डिस्प्ले प्राप्त करना चाहता हूं: मान लीजिए कि मैं 10 और महंगी गाजर प्राप्त करना चाहता हूं (गाजर की कीमतें गाजर की मेज में संग्रहित की जाएंगी) सरणी में प्रत्येक $ खरगोश से।
कुछ की तरह:
{% for rabbit in rabbits %}
{% for carrot in rabbit.getMoreExpensiveCarrots %}
{{ carrot.price }}
{% endfor %}
{% endfor %}
मैं भंडार वर्ग का उपयोग कर रहा है, लेकिन अगर मैं एक समारोह getMoreExpensiveCarrots ($ खरगोश) एक खरगोश भंडार कक्षा में बनाने के लिए, मैं एक इकाई से है कि समारोह का उपयोग करने के लिए सक्षम नहीं होगा ऐसा वर्ग है, जो मैं चाहता:
$ rabbit-> getMoreExpensiveCarrots()
मैंने सोचा था कि ऐसा करने के लिए है कि एक तरह से एक getMoreExpensiveCarrots() बनाने के लिए खरगोश इकाई में होगा:
// Entity rabbit
class Rabbit
{
public function getMoreExpensiveCarrots()
{
// Access repository functions like getMoreExpensiveCarrots($rabbit)
// But how can I do such thing ? Isn't that bad practise ?
return $carrots;
}
}
मैंने सोचा कि मैं कर सकता है और वह भी:
// Entity rabbit
class Rabbit
{
public function getMoreExpensiveCarrots()
{
$this->getCarrots();
// Then try here to sort the carrots by their price, using php
return $carrots;
}
}
यहाँ है मेरी नियंत्रक:
public function indexAction()
{
$em = $this->getDoctrine()->getEntityManager();
$rabbits = $em->getRepository('AppNameBundle:Rabbit')->getSomeRabbits();
return $this->render('AppNameBundle:Home:index.html.twig',
array(
"rabbits"=>$rabbits
));
}
सबसे अच्छा अभ्यास टेम्पलेट में प्रत्येक खरगोश से एक getMoreExpensiveCarrots समारोह कॉल करने के लिए क्या है?
धन्यवाद!
मुझे इस खरगोश और गाजर की चीज़ें पसंद हैं।<3 –