atk4\data\Persistence_SQL::dsql PHP Method

dsql() public method

Returns Query instance.
public dsql ( ) : atk4\dsql\Query
return atk4\dsql\Query
    public function dsql()
    {
        return $this->connection->dsql();
    }

Usage Example

Beispiel #1
0
 public function testQuery()
 {
     $a = ['invoice' => [['total_net' => 10, 'total_vat' => 1.23], ['total_net' => 20, 'total_vat' => 2.46]]];
     $this->setDB($a);
     $db = new Persistence_SQL($this->db->connection);
     $i = (new Model($db, 'invoice'))->addFields(['total_net', 'total_vat']);
     $i->addExpression('sum_net', $i->action('fx', ['sum', 'total_net']));
     $this->assertEquals('select `id`,`total_net`,`total_vat`,(select sum(`total_net`) from `invoice`) `sum_net` from `invoice`', $i->action('select')->render());
     $i->tryLoad(1);
     $this->assertEquals(10, $i['total_net']);
     $this->assertEquals(30, $i['sum_net']);
     $q = $db->dsql();
     $q->field($i->action('count'), 'total_orders');
     $q->field($i->action('fx', ['sum', 'total_net']), 'total_net');
     $this->assertEquals(['total_orders' => 2, 'total_net' => 30], $q->getRow());
 }