Eigene MySQL Abfrage im Repository definieren

Inhaltselemente oder Datensätze anbinden

Seiten und Datensätze können auf verschieden angebunden werden.

Eine eigene Funktion die den Warenkorb des Benutzers findet:
/**
 * Finde Warenkorb von Benutzer
 * @param Tx_Mshop_Domain_Model_MBasket $mUser
 * @return Tx_Extbase_Persistence_QueryResultInterface The products
 */  

public function findMBasketByUser($mUser) {
  $query = $this->createQuery();

  return $query->matching(
    $query->equals('mUser', 'Muster Marcel')
    )->execute();
}
...der Aufruf im Controller und die Übergabe an die entsprechende View
$mBasketList=$this->mBasketRepository->findMBasketByUser($username);
$this->view->assign('mBasketList', $mBasketList); 

Die eigentliche Abfrage

Eine Liste der Möglichen abfragen:

$query->logicalAnd($constraint1, $constraint2);
$query->logicalOr($constraint1, $constraint2);
$query->logicalNot($constraint);
$query->withUid($uid);
$query->equals($propertyName, $operand, $caseSensitive = TRUE);
$query->in($propertyName, $operand); 
$query->contains($propertyName, $operand); 
$query->like($propertyName, $operand);
$query->lessThan($propertyName, $operand);
$query->lessThanOrEqual($propertyName, $operand);
$query->greaterThan($propertyName, $operand);
$query->greaterThanOrEqual($propertyName, $operand);


...und zum Schluss noch ein schönes Beispiel:
/**
* Finds Darlehen nach stopTime
*
* @return Tx_Extbase_Persistence_QueryResultInterface kurse
*/             
public function gibLimitListRepository() {
                $timestamp = time();
                $query = $this->createQuery();
                $query->getQuerySettings()->setRespectEnableFields(FALSE);
                return $query
                                ->matching(
                                        $query->logicalAnd(
                                                $query->equals('deleted', 0),
                                                $query->equals('hidden', 0),
                                                $query->lessThan('endtime', $timestamp),
                                                $query->greaterThan('endtime', '0')
                                        )
                                )
                                ->execute()
                                ->toArray();
    }  
War das Ihnen eine Hilfe? ein "LIKE" wäre ein tolles "Dankeschön"