심포니에서의 ArrayCollection을 계산 2.8으로 반복 또는 나뭇 가지
좋아, 나는 다음과 같습니다 카테고리의 실체가 :
class Category
{
// ... //
/**
* @ORM\OneToMany(targetEntity="Classified", mappedBy="category")
*/
private $classified;
// ... //
public function __construct()
{
$this->classified = new ArrayCollection();
}
}
을하고, 분류 된 기업은 다음과 같습니다 클래스
{
/**
* @ORM\ManyToOne(targetEntity="Category", inversedBy="classified")
*/
private $category;
}
을 분류
내 result.html.twig에 다음과 같이 컨트롤러를 렌더링하도록 호출했습니다.
기본적으로 차례로 쿼리에 대한 CategoryRepository를 호출 분류 컨트롤러class CategoryController extends Controller
{
public function displayCategoryPanelListAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
$categories = $em->getRepository('ClassifiedBundle:Category')
->findAllOrderedByName();
return $this->render('ClassifiedBundle:Front/Widgets:category-panel-list.html.twig',
array(
'categories' => $categories
));
}
}
를 호출
:
결국 범주 패널-list.html.twig에 렌더링class CategoryRepository extends EntityRepository
{
public function findAllOrderedByName()
{
$query = $this->createQueryBuilder('c')
->select('c, cc')
->leftJoin('c.classified', 'cc')
->orderBy('c.name', 'ASC')
->getQuery()
->getResult();
return $query;
}
}
:
<ul>
{% for c in categories %}
<li>
<a href="#">
<i class="fa {{ c.icon }}"></i>
{{ c.name }} <span class="category-counter">{# COUNT SHOULD GO HERE#}</span>
</a>
</li>
{% endfor %}
</ul>
이제는 분류 된 배열 컬렉션 부분을 제외하고는 모두 잘 작동합니다. 내가 시도한 {{ c.classified|length }}
하지만 이것은 치명적인 오류를 제공합니다.
덤프가 잘 보이고 기밀 수집에 대한 항목을 볼 수 있지만 계산 방법은 알 수 없습니다. 일부 카테고리는 기밀 수집이 비어 있습니다.
를 사용해야합니다
"나는 시도했다 {{c.classified | 길이}} 그러나 이것은 치명적인 오류를 제공합니다." - 치명적인 오류가 무엇입니까? – Malcolm