无法让SQL Mapper的copyfrom()方法在Fat Free Framework中工作

时间:2015-07-17 20:31:38

标签: php fat-free-framework

我正在尝试让copyfrom在我正在开发的PHP应用程序中工作。

这是附加到我的PUT / api / visitor / @ id路由的功能:

public function update($f3, $params) {

    $data = json_decode( $f3->get('BODY'), true );

    $visitor_id = $params['id'];
    $visitor = new \Models\Visitor();

    $visitor->load(array('id = ?', $visitor_id));

    // if mapper object is hydrated copy from request body
    if(!$visitor->dry()) {
      $visitor->copyFrom($data);
    }   

    $visitor->save();
}   

我的访问者模型扩展了\ DB \ SQL \ Mapper,我的$ data的键与我的映射器对象的属性匹配,但$ data并不总是包含每个映射器对象属性的键。数组是否需要包含每个映射器对象属性的键?

无论如何,存储在assoc数组$ data中的信息不会存储在数据库中。

我也尝试过copyfrom()和copyFrom()。我在文档和其他示例中都看到过。

知道我做错了吗?

1 个答案:

答案 0 :(得分:2)

  

数组是否需要为每个映射器对象属性包含一个键?

没有

但是,数组输入仅在F3 v3.5中可用。如果您运行的是v3.4或更低版本,则需要先将数据放入配置单元。

if(!$visitor->dry()) {
  $f3->set('data',$data);
  $visitor->copyFrom('data');
}