我有两个不同的表一个是客户另一个是用户。在客户和用户之间的所有字段中两个字段是常见的1)用户名2)密码。
当我在客户中添加数据时,这两个字段需要一次保存在两个表中。我能够保存所有客户表数据。这里客户和用户都属于关系。
这是我的客户模型:
public $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
这是我的客户控制器添加方法
public function add() {
if ($this->request->is('post')) {
$this->Customer->create();
if ($this->Customer->save($this->request->data)) {
$this->Session->setFlash(__('The customer has been saved'), 'flash_success');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The customer could not be saved. Please, try again.'), 'flash_fail');
}
}
$users = $this->Customer->User->find('list');
$this->set(compact('users'));
}
这是我的两个视野
<?php echo $this->Form->input('password', array('class'=>'input-large'));
echo $this->Form->error('password'); ?>
<?php echo $this->Form->input('firstname', array('class'=>'input-large'));
echo $this->Form->error('firstname'); ?>
我的用户控制器添加方法
public function add() {
if ($this->request->is('post')) {
$this->User->create();
$this->request->data['User']['user_type_id'] = $this->request->data['User']['role'];
if ($this->User->save($this->request->data)) {
$this->Session->setFlash(__('The user has been saved'), 'flash_success');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The user could not be saved. Please, try again.'), 'flash_fail');
}
}
$roles = array('1' => 'Admin', '2'=> 'CallCenter', '6'=> 'Accounts');
$this->set(compact('roles'));
}
如何在用户表中发送这两个数据?请问有人帮帮我吗?
答案 0 :(得分:0)
试试这段代码,但是我没有尝试过。
请参阅Manual了解如何保存相关模型
if ($this->request->is('post')) {
$this->Customer->create();
$data = $this->request->data;
$data['User'] = array(
'username' => $data['Customer']['username'],
'password' => $data['Customer']['password'],
);
if ($this->Customer->saveAssociated($data)) {
// your code here
}
答案 1 :(得分:0)
错误的数据库设计,它没有标准化,它需要你复制代码。通过 ONE 用户表修复基本问题,如果注册的人是客户,则根据需要将客户资料与用户记录相关联。
答案 2 :(得分:0)
可能是我知道它的数据库设计不好。我需要针对我的问题的具体解决方案。我的问题是如何在用户表中发送这两个数据,所以让ans
这里我在客户控制器中创建了一个对象
$this->Customer->create();
比我从用户那里获取此值。这是代码
$this->request->data['User']['username']=$this->request->data['Customer']['username'];
$this->request->data['User']['password']=$this->request->data['Customer']['password'];
比我在id
中保存此值这里是代码
$this->request->data['User']['user_type_id']=2;
比我为用户表保存这些数据
$this->User->save($this->request->data);
现在保存的数据是输出:
在尝试解决之后,我的知识可能会受到限制。谢谢。