Giả sử tôi có hai bảng trong cơ sở dữ liệu của tôi: Thỏ và Cà rốt. Thỏ có thể có 0 hoặc bội số cà rốt và cà rốt thuộc về một con thỏ. Đó là mối quan hệ 1, n giữa hai bảng đó.Symfony2 - Truy cập chức năng kho lưu trữ trong Entity
Tôi có hai thực thể, thỏ và cà rốt.
Tôi có một loạt thỏ được truyền trong mẫu của tôi và tôi muốn lấy cà rốt cụ thể từ mỗi con thỏ trưng bày chúng: giả sử tôi muốn mua 10 củ cà rốt đắt hơn (giá cà rốt sẽ được lưu trữ trong bàn cà rốt) từ mỗi con thỏ $ trong mảng.
Cái gì như:
{% for rabbit in rabbits %}
{% for carrot in rabbit.getMoreExpensiveCarrots %}
{{ carrot.price }}
{% endfor %}
{% endfor %}
Tôi đang sử dụng lớp kho, nhưng nếu tôi tạo một hàm getMoreExpensiveCarrots ($ thỏ) trong một lớp kho thỏ, tôi sẽ không thể truy cập vào chức năng đó từ một thực thể lớp như vậy, đó là những gì tôi muốn:
$ rabbit-> getMoreExpensiveCarrots()
tôi nghĩ rằng một cách để làm điều đó sẽ tạo ra một getMoreExpensiveCarrots() trong thực thể thỏ:
// 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;
}
}
Tôi nghĩ tôi có thể làm điều đó quá:
// Entity rabbit
class Rabbit
{
public function getMoreExpensiveCarrots()
{
$this->getCarrots();
// Then try here to sort the carrots by their price, using php
return $carrots;
}
}
Đây là bộ điều khiển của tôi:
public function indexAction()
{
$em = $this->getDoctrine()->getEntityManager();
$rabbits = $em->getRepository('AppNameBundle:Rabbit')->getSomeRabbits();
return $this->render('AppNameBundle:Home:index.html.twig',
array(
"rabbits"=>$rabbits
));
}
thực hành tốt nhất để gọi một hàm getMoreExpensiveCarrots từ mỗi con thỏ trong mẫu là gì?
Cảm ơn!
Tôi thích món thỏ và cà rốt này.<3 –