我的表用户有电话字段。
问题是,如果我想在显示用户信息时将分隔用户电话号码分成2个文本框,反之亦然,当用户提交表单时,自动将合并成为一个值之前 patchEntity()和 save()到数据库。
使用CakePhp Form Helper可以使CakePHP变得简单易用吗?
感谢。
答案 0 :(得分:4)
您可以使用Model.beforeMarshal
事件在修补权限之前修改,重新构建请求数据,beforMarshal
事件在验证过程之前触发。
例如,要将两个表单值连接到一个可以执行的表单值
// In a table or behavior class
public function beforeMarshal(Event $event, $data)
{
$data['telephone'] = $data['telephone_1'].' '. $data['telephone_2'];
}
不要忘记在表或行为类的顶部添加此语句use Cake\Event\Event;
。
有关Model.beforeMarshal
的详细信息,请参阅http://book.cakephp.org/3.0/en/orm/saving-data.html#modifying-request-data-before-building-entities