如何:在typo3 v4.5.30的两个字段中找到findProperty?

时间:2013-11-29 21:04:28

标签: search repository typo3 extbase

我想搜索两个字段与两个提供的对象匹配的记录, 例如

 $cnt = $this->usedCouponRepository->findByUser($validvip)->toArray() ;
 $cnt2 = $this->usedCouponRepository->findByCoupon($validcoupon)->toArray() ;

获取interesection,(在usedcoupon表中查找有效优惠券与validvip配对的次数)   像这样的电话会是它 -

$cnt3 = $this->usedCouponRepository->findByUserAndCoupon($validcoupon,$validuser);

有没有神奇的功能来做到这一点或其他一些有效的方法?我讨厌在第一次寻找代码中的匹配时循环。  感谢

1 个答案:

答案 0 :(得分:2)

不,没有“extbase magic”为你做这份工作。你必须自己实现它。但幸运的是,它并不那么难。只需向您的存储库添加一个方法,如下所示:

public function findByUserAndCoupon($validcoupon, $validuser) {
    $query = $this->createQuery();
    $query->matching(
        $query->logicalAnd(
            $query->equals('user', $validuser),
            $query->equals('coupon', validcoupon)
        )
    );
    $result = $query->execute();
    return $result;
}

现在你可以像之前尝试的那样打电话。 logicalAnd语句中的字符串'user''coupon'必须是数据库的字段名。