我們創造之間的簡單毫米關係的模型,像這樣:獲取TYPO3 Extbase毫米關係算
<?php
namespace VENDOR\COMPANY\Domain\Model;
class Posts extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
{
//..
/**
* users
*
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\VENDOR\COMPANY\Domain\Model\Users>
*/
protected $likedBy = null;
//..
}
MySQL數據庫創建一個新毫米表,並創建在..domain_post
表計數器列users
。是否有一個「更輕」的方式來獲得這個計數,而不是打電話給所有相關的用戶並計算它們?
$amountLikes = $post->getLikedBy()->count();
想象一下,每個帖子都有30000個喜歡的帖子。該腳本開始在內存中建立30000個對象。問帖子表中的數字聽起來對我來說更爲現實。但如何?
如果算上執行的語句,extbase仍將構建每一個匹配實體extbase對象。但是,如果您不先執行查詢就調用count,如文檔中所述https://docs.typo3.org/typo3cms/ExtbaseFluidBook/6-Persistence/3-implement-individual-database-queries.html 。 – j4k3
@ j4k3感謝這個重要的建議j4k3 - 我編輯了上面的答案。 –