当我保存多个模型时,我无法将Company.id转换为License.company_id。我需要company_id许可证表的原因是公司拥有许可证并将许可证分配给其用户/员工。saveA关联3个模型
我有这个表:公司,用户和许可证。
许可证:belongsTo公司,hasMany用户。
公司:hasMany许可证,hasMany用户。
用户:belongsTo公司,belongsTo许可证。
公司表:
id
name
用户表:
id
company_id
license_id
email
password
许可表:
id
company_id
UsersController.php
public function register() {
$expires = date("Y-m-d H:i:s", strtotime("+30 days"));
$this->set('expires', $expires);
if ($this->request->is('post')) {
$this->request->data['User']['language'] = 'nor';
$this->request->data['User']['role'] = 'admin';
$this->request->data['User']['active'] = '1';
$this->User->create();
if ($this->User->saveAssociated($this->request->data, array('deep' => true))) {
$this->Session->setFlash(__('The user has been saved.'), 'default', array('class' => 'notice success'));
return;// $this->redirect(array('controller' => 'landing', 'action' => 'index'));
} else {
$this->Session->setFlash(__('The user could not be saved. Please, try again.'), 'default', array('class' => 'notice error'));
}
}
}
个
用户/ register.ctp
<?php echo $this->Form->create('User', array('controller' => 'users', 'action' => 'register')); ?>
<?php
echo $this->Form->input('Company.name', array('placeholder' => __('Company')));
echo $this->Form->input('name', array('placeholder' => __('Name')));
echo $this->Form->input('email', array('class' => 'form-control', 'placeholder' => __('E-mail')));
echo $this->Form->input('mobile', array('placeholder' => __('Mobile number')));
echo $this->Form->input('password', array('placeholder' => __('Password')));
echo $this->Form->input('License.product_id', array('type' => 'hidden', 'value' => '1'));
echo $this->Form->input('License.amount', array('type' => 'hidden', 'value' => '2'));
echo $this->Form->input('License.renewal', array('type' => 'hidden', 'value' => '0'));
echo $this->Form->input('License.expires', array('type' => 'hidden', 'value' => $expires));
?><?php echo $this->Form->end(__('Submit')); ?>
编辑:我曾尝试相同的代码只是另一种模式(公司)为好。 User.license_id保存正确,但是Lisence.company_id不会。
这是我之前$这个 - 获取>用户创建():
Array
(
[Company] => Array
(
[name] => Company AS
)
[User] => Array
(
[name] => Ola Nordmann
[email] => [email protected]
[mobile] => 99229922
[password] => qwertyui
[language] => nor
[role] => admin
[active] => 1
)
[License] => Array
(
[product_id] => 1
[amount] => 2
[renewal] => 0
[expires] => 2015-05-05 23:39:10
)
)
你可以做'PR($ this-> request-data);'在'$ this-> User-create()' – 2015-04-05 20:47:23
之前,我用输出更新了第一篇文章。这是我想的(想要的)。现在查询中缺少的是[License] [company_id]。 – Christian 2015-04-05 21:46:51