如何使用redbean更改列的类型?

时间:2015-07-02 09:40:44

标签: php mysql redbean

我使用redbeanphp进行数据库操作。我使用以下代码创建一个表并向我的数据库添加一行:

$bean= R::dispence("esate") ; 
$bean->import(json_decode($data)) ; 
R::store($bean); 

在我的 $ data 变量中我有null属性 ,例如地址 ,当redbeanphp将此bean存储在数据库中时,将此属性类型设置为tinyint或其他类型。 现在当我用地址属性创建另一个bean时,mysql忽略我的值并将地址列留空。

可以redbean处理这个问题,如果答案是YES怎么办?

2 个答案:

答案 0 :(得分:1)

试试这个

Notification.create({
  title: 'A new user has comment',
  text: "Hola",
  type: 'new_comment',
  read: false,
  user: event.owner
}).then(function(comment) {
  sails.sockets.broadcast(event.owner, {
    id: notification.id,
    title: 'A new user has comment'
  });
});

答案 1 :(得分:0)

动态调整数据库模式是RedBean的核心功能,因此您的问题非常令人惊讶。

请参阅:

$foo = R::dispense('foo');
$foo->import(array(
    'address' => null,
));
$id = R::store($foo);

$bar = R::dispense('foo');
$bar->import(array(
    'address' => 'baz',
));
$id2 = R::store($bar);

var_dump(R::load('foo', $id)->export());

var_dump(R::load('foo', $id2)->export());

输出:

array(2) {
  ["id"]=>
  string(1) "1"
  ["address"]=>
  NULL
}
array(2) {
  ["id"]=>
  string(1) "2"
  ["address"]=>
  string(3) "baz"
}

你没有任何事情可以让它发挥作用......所以问题是你为它做了什么才能工作?特别是,您确定没有frozen您的数据库吗?