我正在尝试让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()。我在文档和其他示例中都看到过。
知道我做错了吗?
答案 0 :(得分:2)
数组是否需要为每个映射器对象属性包含一个键?
没有
但是,数组输入仅在F3 v3.5中可用。如果您运行的是v3.4或更低版本,则需要先将数据放入配置单元。
if(!$visitor->dry()) {
$f3->set('data',$data);
$visitor->copyFrom('data');
}