[TYPO3-mvc] extbase queries, add count() and left join
Muriel le Pair
typo3 at strangefruit.nl
Wed Jun 25 12:13:18 CEST 2014
Philipp Wrann schreef op 25-06-14 11:49:
> The join is generated by extbase when adding constraints on other
> models... you need to connect your models and set up the tca correctly.
>
> To get the count you call the count method of your query object.
>
> add a property-filter:
> $query->matching($query->contains('categories',$category));
>
> counting:
> $query->count();
>
> Just return the queryresult from the repository, you can handle it in
> your view.
> (return $query->execute())
>
> in your view:
> {objects -> f:count()}
>
> or iterate through your results
>
> <f:widget.paginate objects="{objects}" as="paginated">
> <ul>
> <f:for each="{paginated}" as="object">
> <li>{object.category.title}</li>
> </f:for>
> </ul>
> </f:widget.paginate>
Hi,
Thanks for your reply.
I can't use $query->count(), because I need to know how many items there
are on each row (GROUP BY uid).
SELECT count(tx_sffilterdb_items_cataardvdaanpak_mm.uid_foreign) as
amount, tx_sffilterdb_domain_model_cataardvdaanpak.*
FROM tx_sffilterdb_domain_model_cataardvdaanpak
LEFT JOIN tx_sffilterdb_items_cataardvdaanpak_mm ON
tx_sffilterdb_domain_model_cataardvdaanpak.uid =
tx_sffilterdb_items_cataardvdaanpak_mm.uid_foreign
LEFT JOIN tx_sffilterdb_domain_model_items as i ON i.uid =
tx_sffilterdb_items_cataardvdaanpak_mm.uid_foreign
WHERE tx_sffilterdb_domain_model_cataardvdaanpak.deleted=0
AND (tx_sffilterdb_domain_model_cataardvdaanpak.t3ver_wsid=0 OR
tx_sffilterdb_domain_model_cataardvdaanpak.t3ver_wsid=0)
AND tx_sffilterdb_domain_model_cataardvdaanpak.pid<>-1
GROUP BY tx_sffilterdb_domain_model_cataardvdaanpak.uid
ORDER BY tx_sffilterdb_domain_model_cataardvdaanpak.sorting ASC
I have added setAmount() and getAmount() to the repository.
How do I get the amount from the query into setAmount()?
--
kind regards,
Muriel le Pair
More information about the TYPO3-project-typo3v4mvc
mailing list