我在表格中设置位字段时遇到问题。 当我想设置一个像确认= 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但是没有用!
答案 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来转换值