Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Cakephp中连接表_Cakephp - Fatal编程技术网

在Cakephp中连接表

在Cakephp中连接表,cakephp,Cakephp,我正在探索cakePHP并试图加入工作,但失败了。感谢您的帮助!情况:我有一个用户表和一个时隙表。每个时间段设置为有多个用户时间段意味着有两个用户相遇: var $hasMany = array( 'Partner' => array( 'className' => 'User', 'foreignKey' => 'id' ), 'Student' => array( 'className' => 'User', 'foreignKey' =&g

我正在探索cakePHP并试图加入工作,但失败了。感谢您的帮助!情况:我有一个用户表和一个时隙表。每个时间段设置为有多个用户时间段意味着有两个用户相遇:

var $hasMany = array(
 'Partner' => array(
  'className' => 'User',
  'foreignKey' => 'id'
 ),
'Student' => array(
  'className' => 'User',
  'foreignKey' => 'id'
 )
);
所以,我想做的是加载一个时隙,并加入users表来填充谁是“合作伙伴”和谁是“学生”。现在,我已经通过这种方式为学生设置了连接:

    $params = array(
        'joins' => array(
            array(
                'table' => 'users',
                'alias' => 'User',
                'type' => 'LEFT',
                'conditions' => array(
                    'User.id = Timeslot.student_id',
                )
            )
        )
    );
    $this->set('timeslots', $this->Timeslot->find('all', $params)); 
在我的时间段变量中,当我进入视图时,由于$hasMany关联,我有一个Partner数组和一个Student数组。但我不知道如何以适当的方式加载这些变量

谢谢你的帮助

欢迎来到CakePHP

看起来你们的关系设置不正确。根据您的描述,一个时间段将有一个参与者和一个学生。因此,应该定义的关系是belongsTo。您的时隙表应该有两个外键,partner_id和student_id。然后在您的时隙模型中声明:

var $belongsTo = array(
    'Partner' => array(
        'className' => 'User',
        'foreignKey' => 'partner_id'
    ),
    'Student' => array(
        'className' => 'User',
        'foreignKey' => 'student_id'
    )
);
结果应该是调用$this->Timeslot->find,返回如下内容:

array(
    0 => array(
        'Timeslot' => array(...),
        'Partner' => array(...),
        'Student' => array(...)
    ),
    1 => array(
        'Timeslot' => array(...),
        'Partner' => array(...),
        'Student' => array(...)
    ),
    ...
)

这就是你想说的吗?

嗨,泰勒!谢谢…学习cakePhp是一种享受!那很有效!谢谢你的帮助。