Cake ORM QueryBuilder以不同方式从连接表中选择数据

时间:2016-08-23 14:05:09

标签: php cakephp

我在我的项目中独立使用CakeORM,它运行得很好,但有些东西对我来说没什么意义。如果以不同的方式存储,我从连接表中选择日期或布尔字段。

$users = TableRegistry::get('users')->find();
$users
->hydrate()
->select([
    'user_id',
    'username',
    'dt_last_login'
])
->toArray();

这段代码会让我这样:

Array
(
    [0] => Array
        (
            [user_id] => 1
            [username] => 'teste'
            [dt_last_login] => DateTime Object
                (
                    [date] => 2016-08-23 08:42:54.000000
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )
        )
)

好的,这是预期的行为,现在下一个代码有不同的行为。

$users = TableRegistry::get('users')->find();
$users
->hydrate()
->select([
    'user_id',
    'username',
    'dt_last_login',
    'dt_update' => 'users_update.dt_update'
])
->join([
    'table' => 'users_update',
    'type' => 'left',
    'conditions' => ['users.user_id = users_update.user_id']
])
->toArray();

使用这段代码我得到这样的东西:

Array
(
    [0] => Array
        (
            [user_id] => 1
            [username] => 'teste'
            [dt_last_login] => DateTime Object
                (
                    [date] => 2016-08-23 08:42:54.000000
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )
            [dt_update] => 2016-08-23 08:42:54.000000
        )
)

如您所见,dt_last_login是一个DateTime对象,dt_update是一个字符串。有没有办法让Cake获取dt_update作为DateTime对象?

0 个答案:

没有答案