【问题标题】:Saving multiple new relations with validation (Codeigniter/DataMapper)通过验证保存多个新关系(Codeigniter/DataMapper)
【发布时间】:2011-08-01 22:43:13
【问题描述】:

我正在使用 codeigniter 构建一个应用程序,其中涉及将具有多个电话号码的“看护人”添加到数据库中。从 UI 方面来看,每个电话字段旁边都有一个添加按钮,它使用一些 JavaScript 魔法来克隆自己,以便用户输入另一个号码。提交表单时,电话号码以数组形式提交。

我设置了两个模型:carercarer_telephone。每个模型都有自己的表格。

我一直在绞尽脑汁想办法让 datamapper 在保存之前验证所有关系。例如,目前只显示 carer 字段的验证错误,而 carer_telephone 字段则不显示。

另外,我不确定这是否是处理此问题的最节省内存的方法,即为每个号码创建一个新的 carer_telephone 对象。

这必须是许多应用程序的通用设置,但我似乎无法找到有关该主题的任何文档。我正在寻找关于 DataMapper 的最标准方法。

到目前为止的控制器

function add() {

    //Create carer object
    $c = new carer();

    //Create carer telephone object
    $t = new carer_telephone();

    //Form submitted
    if($this->input->post('add_carer')) {

        //Set carer data
        $c->title           = $this->input->post('title');
        $c->first_name      = $this->input->post('first_name');
        $c->family_name = $this->input->post('family_name');
        $c->display_name    = $this->input->post('display_name');
        $c->date_of_birth   = $this->input->post('date_of_birth');
        $c->email_address   = $this->input->post('email_address');
        $c->street_address  = $this->input->post('street_address');
        $c->town            = $this->input->post('town');
        $c->county          = $this->input->post('county');
        $c->postcode        = $this->input->post('postcode');

        //Set and save telephones
        foreach($this->input->post('telephone') as $tel) {
            $t = new carer_telephone();
            $t->type    = 'test';
            $t->number  = $tel;
            $c->save($t);
        }

    }

    //Store carer object
    $this->_data['content']['carer'] = $c;

    //Load view
    $this->load->view('carers/add',$this->_data);

}

对此的任何帮助将不胜感激。甚至只是一个链接到有人处理这种情况的示例。

最好的问候, 丹

【问题讨论】:

    标签: php codeigniter codeigniter-datamapper


    【解决方案1】:

    DataMapper 附带的数组扩展可能对您有用:http://datamapper.wanwizard.eu/pages/extensions/array.html - 让您可以将数组数据保存到数据库等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多