【问题标题】:CakePhp: create a form which contains information on several modelsCakePhp:创建一个包含多个模型信息的表单
【发布时间】:2011-09-13 06:34:14
【问题描述】:

我要创建一个“注册”表单,该表单必须将信息存储在两个不同的数据库中,一些字段在本地数据库中(登录信息:用户名,密码)(模型名为“用户”),一些在外部数据库(erp 数据库,其中包含电子邮件、电话等)(模型名为“客户”)。

我们必须这样做,因为我们必须使用现有的 ERP(我们无法编辑它,这是我们的限制)。

所以我的问题是,如何设置允许我们指定用户和客户信息的注册表单。

在“用户”控制器中插入“客户”不是问题,我只是不知道如何接收一个

$this->data

其中包含

$this->data['User']

$this->data['Customer']

数据。

因为在视图中,我们必须在“表单”级别指定使用哪个模型。

echo $this->Form->create('**User**',array('action'=>'register'));

非常感谢!

【问题讨论】:

    标签: php forms cakephp frameworks model


    【解决方案1】:

    如果你想在你的 $this->data 中有 $this->data['User'] 和 $this->data['Customer'] 这样的记录

    您的表单字段应该是这样的

      <?=$form->input('User.email',array('label'=>false));?>
      <?=$form->input('Customer.name',array('label'=>false));?>
      <?=$form->input('User.password',array('label'=>false));?>
    

    你必须在这些表之间创建 realtion 在模型用户中你必须添加这个

    public $hasOne = array("Customer"); //User.customer_id -> Custome.id  
    

    你必须使用 $this->User->saveAll($this->data) 来保存两个表中的数据

    对不起我的英语,希望对你有帮助

    【讨论】:

    • 好的,谢谢,我不知道表单中的 Model.field 密码。我知道关系,但是因为用户和客户表不在同一个数据库中,这仍然可能吗?
    • 不同数据库中的表用户和客户?您的 cakephp 应用程序是否使用两个数据库?
    • 是的,相信我,这不是我的选择(最糟糕的是一个数据库在 Ingres 中,另一个在 MySql 中)。但是现在,cake 很好地管理了两个数据库的使用 ;)
    猜你喜欢
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多