我有三张不同的牌桌。
现在我正在从User检索数据。 每个用户都有许多UserBids。 每个UserBids属于任何公司。
现在我正在编写类似的查询。
$Users = $this->Users->find('all', array(
'conditions' => array('Users.id' => $userid)
));
获取有关User和UserBids的所有数据。
但是在UserBids表中,有一个字段,它的名字是company_id。
如何通过公司表中的company_id获取公司名称和其他数据?
答案 0 :(得分:2)
您正在使用recursive
选项find()
- http://book.cakephp.org/2.0/en/models/model-attributes.html#recursive。它需要一个int,它是查询查询将遍历并返回数据的关联数。默认值为1,用于说明您的结果。
答案 1 :(得分:2)
首先,您应该遵循CakePHP naming conventions。型号名称应该是单数。
以下是您可以使用的代码:
您的模型文件应如下所示:
app/Model/User.php
App::uses('AppModel', 'Model');
class User extends AppModel
{
public $name = 'User';
public $useTable = 'Users';
public $hasMany = array('UserBid' => array('className' => 'UserBids',
'foreignKey' => 'user_id'));
}
app/Model/UserBid.php
App::uses('AppModel', 'Model');
class UserBid extends AppModel
{
public $name = 'UserBid';
public $useTable = 'UserBids';
public $belongsTo = array('Company' => array('className' => 'Company',
'foreignKey' => 'company_id'));
}
app/Model/Company.php
App::uses('AppModel', 'Model');
class Company extends AppModel
{
public $name = 'Company';
public $useTable = 'Company';
}
现在您的查找条件应如下所示:
$user_details = $this->User->find('all', array('conditions' => array('Users.id' => $userid),
'recursive' => 2));
答案 2 :(得分:0)
//这是用于调用UserBids表
$这 - > loadmodel(' UserBids&#39);
你可以这样尝试
$则fetch_data = $这 - > UserBids->发现('所有',阵列('条件' =>阵列(' UserBids.id&#39 ; => $ _ SESSION [' USERAUTH'] ['用户'] [' ID'])));
$ this-> set(' selected',$ fetch_data);