1

这是我的 MySQL 数据库的数据库架构:

create table noticia 
(
    id int,
    imagen varchar(255),
    fecha datetime,
    titulo varchar(255),
    url varchar(255),
    descripcion varchar(255),
    contenido text
) 

我使用 RedBeanPHP 作为我的 ORM 将信息保存到数据库中。这是我根据文档DateTime将日期抓取并解析为对象的地方。

foreach ($element->find('span.fechanoticia') as $fecha) {
   $tmp = str_replace("/", "-", $fecha->innertext);
   print_r($tmp);

   $dateFoo = new DateTime($tmp);
   echo $dateFoo->format('Y-m-d H:i:s');

   $newItem->set_fechanoticia($dateFoo);
}

例如$tmp变量 this 值:

05-09-2012

对格式的echo调用返回:

2012-09-05 00:00:00

一切都很好,而且工作正常。

但是,当我尝试使用 RedBeanPHP 将其保存到数据库时,出现此错误:

致命错误:C:\xampp\htdocs\blog-uvm\rb.php:4880 中未捕获的异常 'RedBean_Exception_Security' 和消息 'Invalid Bean: property fecha' 堆栈跟踪:#0 C:\xampp\htdocs\blog-uvm\ rb.php(5108): RedBean_OODB->check(Object(RedBean_OODBBean)) #1 C:\xampp\htdocs\blog-uvm\rb.php(5082): RedBean_OODB->storeBean(Object(RedBean_OODBBean)) #2 C :\xampp\htdocs\blog-uvm\rb.php(7005): RedBean_OODB->store(Object(RedBean_OODBBean)) #3 C:\xampp\htdocs\blog-uvm\index.php(60): RedBean_Facade:: store(Object(RedBean_OODBBean)) #4 {main} 在第 4880 行的 C:\xampp\htdocs\blog-uvm\rb.php 中抛出

RedBeanPHP 不能处理日期时间对象吗?

4

2 回答 2

4

根据RedBean 的文档更多数据类型),您只能保存DateTime字符串形式的对象。

例如:

// It's a string - not a DateTime.
$photo->created = '1995-12-05 19:00:00';

在这种情况下,解决方案应该是保存格式化的字符串,而不是DateTime对象本身:

$newItem->set_fechanoticia($dateFoo->format('Y-m-d H:i:s'));
于 2012-09-05T13:27:40.933 回答
0

发现这个:http ://groups.google.com/group/redbeanorm/browse_thread/thread/6961ac635e6886f6

The Optimizer will now convert columns with datetime values to datetimefields. If a different value is inserted the column will be reverted by OODB in fluid mode.
于 2012-09-05T13:30:21.900 回答