/**
     * Test find()
     *
     * @covers Windwalker\DataMapper\RelationDataMapper::find
     *
     * @return void
     */
    public function testFindGroup()
    {
        $mapper = RelationDataMapper::getInstance('category', 'ww_categories')->addTable('flower', 'ww_flower', 'flower.catid = category.id')->group('category.id');
        $dataset = $mapper->find(array('flower.state' => 1), 'flower.title DESC');
        $sql = <<<SQL
SELECT `flower`.`id` AS `flower_id`,
\t`flower`.`catid` AS `flower_catid`,
\t`flower`.`title` AS `flower_title`,
\t`flower`.`meaning` AS `flower_meaning`,
\t`flower`.`ordering` AS `flower_ordering`,
\t`flower`.`state` AS `flower_state`,
\t`flower`.`params` AS `flower_params`,
\t`category`.`id` AS `id`,
\t`category`.`title` AS `title`,
\t`category`.`ordering` AS `ordering`,
\t`category`.`params` AS `params`
FROM `ww_categories` AS `category`
\tLEFT JOIN `ww_flower` AS `flower` ON flower.catid = category.id
WHERE `flower`.`state` = 1
GROUP BY category.id
ORDER BY flower.title DESC
SQL;
        $this->assertEquals($dataset, $this->loadToDataset($sql));
    }
Exemple #2
0
 /**
  * getNotifications
  *
  * @param   string $type
  * @param   int    $targetId
  *
  * @return  mixed|\Windwalker\Data\DataSet
  */
 public static function getNotifications($type, $targetId)
 {
     return RelationDataMapper::getInstance('user', WarderTable::USERS)->addTable('notification', Table::NOTIFICATIONS, 'notification.user_id = user.id')->find(['notification.target_id' => $targetId, 'type' => $type]);
 }