public function testFilterTime() { $ddt = new DateTime(); $obj = new CustomerOrderModel(['order_number' => 'filter_test1', 'date_added' => $ddt->format(\Dja\Db\Model\Field\DateTime::FORMAT)]); $obj->save(); $q = CustomerOrderModel::objects()->filter(['date_added__minute' => $ddt->format('i'), 'order_number' => 'filter_test1'])->limit(1); $this->assertCount(1, $q); foreach ($q as $obj) { $dt = new DateTime($obj->date_added); $this->assertEquals($ddt, $dt); } }
protected static $dbtable = 'test_customer_order'; protected static $fields = ['customer_order_id' => ['Auto', 'help_text' => 'первичный ключ'], 'date_added' => ['DateTime', 'autoInsert' => true, 'help_text' => 'время создания'], 'user' => ['ForeignKey', 'relationClass' => 'UserModel', 'db_column' => 'user_id', 'null' => true, 'help_text' => 'ссылка на юзера'], 'order_number' => ['Char', 'null' => true, 'max_length' => 21, 'default' => '', 'blank' => true, 'help_text' => 'полный номер заказа']]; } $creation = new \Dja\Db\Creation($dbConn, ['UserModel', 'CustomerOrderModel']); $creation->processQueueCallback(function (\Dja\Db\Model\Metadata $metadata, \Doctrine\DBAL\Schema\Table $table, array $sql, \Doctrine\DBAL\Connection $db) { foreach ($sql as $sqlstmt) { $db->exec($sqlstmt); } }); for ($i = 1; $i <= 99; $i++) { $user = new UserModel(['username' => 'testUser' . $i, 'fullname' => 'testUser ' . $i . ' with space', 'email' => 'test' . $i . '@ya.ru', 'password' => md5('passw' . $i), 'ip' => $i < 90 ? '127.0.0.1' : null]); $user->save(); } for ($i = 1; $i <= 99; $i++) { $order = new CustomerOrderModel(['order_number' => 'testOrder' . $i, 'user_id' => $i]); $order->save(); } register_shutdown_function(function () use($dbConn) { $dbConn->getSchemaManager()->dropTable(CustomerOrderModel::metadata()->getDbTableName()); $dbConn->getSchemaManager()->dropTable(UserModel::metadata()->getDbTableName()); $dbConn->close(); }); class SqlLog { /** * @var \Doctrine\DBAL\Logging\DebugStack */ public static $log; public static function dump() { array_walk(self::$log->queries, function ($q) {