1

有没有办法自动/动态地设置数据映射器对象的所有属性,而不是一对一地分配它们?

所以我的表单字段名称与数据映射器模型中的属性完全相同。

那么有没有更短的方法来做到这一点:

function add() {
 if( $this->input->post('client-add')) {
 $c = new Client();
 $c->name = $this->input->post('name');
 $c->email = $this->input->post('email');
 // and so on for about 20 more properties

 $c->save();
  }}
4

2 回答 2

1

您应该简单地循环运行它:

function add() {
    if ( $this->input->post('client-add') ) {
        $c = new Client();
        $fields = array('name', 'email', 'and', 'so', 'on');

        foreach ( $fields as $field ) {
            $c->$field = $this->input->post( $field );
        }

        $c->save();
    }
}
于 2012-03-26T14:58:22.193 回答
1

好吧,你总是可以在没有任何参数的情况下使用帖子,比如:

function add()
{
    if($this->input->post('client-add')) {
        $c = new Client($this->input->post());
    }
    $c->save();
}

您可能遇到的主要问题是客户端加载程序还获取数组中的“客户端添加”字段。但是您应该控制类加载器中的输入。

于 2012-03-26T16:11:16.443 回答