我有两个名为login和userDetail的表
Login
login_id
uname
pswd
userdetail_id
和
userdetails
userdetail_id
name
address
email
登录表包含userDetail表中的userdetails_id。我想从Login表和userDetail表中获取所有数据并将其保存到变量中 如果有人知道,请回答我......
答案 0 :(得分:4)
首先,您的表结构必须如下所示。
logins Table.
Id auto_increment
username
password
userDetails Table.
Id auto_increment
user_id
name
address
etc...
现在每个表的模型都是。
<强>登录强>
<?php
class Login extends AppModel
{
var $name = 'User';
var $hasMany = array
(
'UserDetail' => array
(
'className' => 'UserDetail',
'foreignKey' => 'user_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
}
?>
<强> UserDetail 强>
<?php
class UserDetail extends AppModel
{
var $name = 'UserDetail';
var $belongsTo = array
(
'User' => array
(
'className' => 'User',
'foreignKey' => 'user_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => ''
)
}
?>
最后在控制器中,您需要获取登录详细信息。
$login_detail = $this->Login->find('all');
您将在结果$login_detail
中看到userDetail表记录。
在控制器中使用
pr($login_detail);
来查看它的实际效果。
干杯。 随意问。
答案 1 :(得分:2)
确保已启用ContainableBehavior。之后,您可以使用以下查询:
$login = $this->Login->find('first', array(
'contain' => array(
'Userdetail.userdetail_id'
'Userdetail.name',
'Userdetail.address',
'Userdetail.email'
),
'fields' => array(
'Login.login_id'
'Login.uname',
'Login.pswd'
),
'conditions' => array(
'Login.login_id' => 1
)
));
答案 2 :(得分:-1)
此任务的查询将是:
SELECT Login.*, name,address,email
FROM Login JOIN userdetails
ON Login.userdetail_id=userdetails.userdetail_id
可以通过在cakephp中循环来将此查询的结果保存到变量中。