【发布时间】:2010-08-05 06:53:28
【问题描述】:
我有以下情况:
我正在开发一个地址应用程序来存储我们客户的详细信息。
我有以下数据库结构:
Clients hasMany Addresses
Addresses belongsTo Client
Addresses hasMany AddressEmails and AddressPhones
如果现在有人添加了新客户,则应保存他的主要地址以及 1 个电子邮件和 1 个电话号码。
如果我在客户端的添加视图中使用以下代码执行此操作并在客户端控制器中调用 saveAll 方法,部分效果会非常好:
<?php
echo $this->Form->input('client_group_id');
echo $this->Form->input('company');
echo $this->Form->input('firstname');
echo $this->Form->input('lastname');
echo $this->Form->input('www');
echo $this->Form->input('Address.0.is_standard', array('type' => 'hidden', 'value' => '1'));
echo $this->Form->input('Address.0.street');
echo $this->Form->input('Address.0.zip');
echo $this->Form->input('Address.0.city');
?>
但我不知道如何通过此视图保存电子邮件和电话号码。尝试过像 AddressEmail.0.email 这样的想法,但没有奏效。
知道了:
使用 Nik 发布的解决方案运行良好,我现在调用 $this->Client->Address->saveAll($this->data) 但必须像这样调整我的添加视图:
<?php
echo $this->Form->input('client_group_id');
echo $this->Form->input('company');
echo $this->Form->input('firstname');
echo $this->Form->input('lastname');
echo $this->Form->input('www');
echo $this->Form->input('Address.is_standard', array('type' => 'hidden', 'value' => '1'));
echo $this->Form->input('Address.street');
echo $this->Form->input('Address.zip');
echo $this->Form->input('Address.city');
echo $this->Form->input('AddressEmail.0.type', array('type' => 'hidden', 'value' => 'Standard'));
echo $this->Form->input('AddressEmail.0.email');
echo $this->Form->input('AddressPhone.0.type', array('type' => 'hidden', 'value' => 'Standard'));
echo $this->Form->input('AddressPhone.0.number');
?>
由于我现在从地址模型调用 saveAll() 方法,因此不再需要零!
【问题讨论】:
-
这是旧帖子,但真正解决了我的问题。非常感谢!
-
这里也一样!!这个旧帖子拯救了我的一天!谢谢
标签: php cakephp cakephp-model