phalcon将位字段视为字符串

时间:2015-01-21 13:07:10

标签: data-binding model bit phalcon

我在表格中设置位字段时遇到问题。 当我想设置一个像确认= 0的位字段,因为phalcon将它绑定为字符串('0'),最终结果将被确认= 1。 我可以将所有位字段类型更改为tinyint(1),但这对我来说需要太多时间,因为我在许多表中都有很多位字段。

在phalcon文档中有一个指定绑定类型的示例如下:

<?php

use \Phalcon\Db\Column;

//Bind parameters
$parameters = array(
    "name" => "Robotina",
    "year" => 2008
);

//Casting Types
$types = array(
    "name" => Column::BIND_PARAM_STR,
    "year" => Column::BIND_PARAM_INT
);

// Query robots binding parameters with string placeholders
$robots = Robots::find(array(
    "name = :name: AND year = :year:",
    "bind" => $parameters,
    "bindTypes" => $types
));

但这是用于检索数据。我想知道用save方法存储数据是否可以做同样的事情?例如,在beforeSave()方法中执行某些操作,例如检查元数据的metaData并将这些数据绑定为Int值!

我也尝试使用'b0'而不是0但是没有用!

1 个答案:

答案 0 :(得分:1)

也许它在模型的元数据结构中

注释是设置它的最简单方法: http://docs.phalconphp.com/en/latest/reference/models.html#annotations-strategy

class Model extends \Phalcon\Mvc\Model
{

    /**
     * @Column(type="integer")
     */
    public $bitColumn;
}

或者,您可以使用beforeValidationOnSave和afterFetch来转换值