连接在CakePHP中究竟是如何工作的

连接在CakePHP中究竟是如何工作的,php,cakephp,Php,Cakephp,我希望在控制器中有第二个包含数据的表,以便在视图中使用它。 此时,我有一个名为“PortfoliosController.php”的控制器。在这个控制器中,我有一个名为Index的公共函数,这里我想加入它 到目前为止,我有以下代码(只是我仍然无法访问联接表中的数据): 这里有人看到问题了吗,或者有可能会有帮助的答案 从联接表中获取数据的最佳方法是在投资组合模型中的两个表之间建立关系 因此,在这种情况下,似乎会使用hasmany关系,因为投资组合可能包含第二个表中的许多结果?这意味着,当您执行“全

我希望在控制器中有第二个包含数据的表,以便在视图中使用它。 此时,我有一个名为“PortfoliosController.php”的控制器。在这个控制器中,我有一个名为Index的公共函数,这里我想加入它

到目前为止,我有以下代码(只是我仍然无法访问联接表中的数据):


这里有人看到问题了吗,或者有可能会有帮助的答案

从联接表中获取数据的最佳方法是在投资组合模型中的两个表之间建立关系

因此,在这种情况下,似乎会使用hasmany关系,因为投资组合可能包含第二个表中的许多结果?这意味着,当您执行“全部”查找时,它不仅会查找该表中的所有数据,而且还会查找第二个表中的数据(由于其关系)

有关在此处设置关系的详细信息

您的模型

排列( 'className'=>'State\u master', “foreignKey”=>错误, 'type'=>'left', “条件”=>数组('State\u master.State\u id=Student\u master.Student\u State'), “依赖”=>true ), “City_master”=>数组( 'className'=>'City\u master', “foreignKey”=>错误, 'type'=>'left', “条件”=>数组('City\u master.City\u id=Student\u master.Student\u City'), “依赖”=>true ), “Class_master”=>数组( 'className'=>'Class\u master', “foreignKey”=>错误, 'type'=>'left', “条件”=>数组('Class\u master.Class\u id=Student\u master.Student\u Class'), “依赖”=>true ) ); } ?> 控制器:

$this->paginate=array('limit'=>25,'order'=>array('admin\u id'=>'asc'), '条件'=>数组('school\u admin\u id'=>$this->Session->read('Auth.User.school\u admin\u id'))

视图:


名称
电子邮件ID
联系电话
等级
地位
选项
public function index() {
    $this->Portfolio->recursive = -1;

    $options = $this->Portfolio->find('all', array('joins' => array(
        array(
            'table' => 'students',
            'alias' => 'Student',
            'type' => 'LEFT',
            'foreignKey' => true,
            'conditions'=> array('Student.userid = Portfolio.userid')
        )
    )));

    $this->set('portfolios', $this->Portfolio->find('all', $options));
}
                $stlist = $this->paginate('Student_master');
                $this->set('stlist',$stlist);

                $this->set('students_data',$stlist);
<tr>
    <th><input type="checkbox" name="checkall" id="checkall" onclick='checkedAll();'></th>
    <th>Name</th>
    <th>Email ID</th>
    <th>Contact No</th>
    <th>Class</th>
    <th>Status</th>
    <th>Option</th>
</tr>

<?php
    $rowcount=0;
    foreach ($students_data as $st_data) {
    $student_status=$st_data['Student_master']['student_status'];
  $student_id=$st_data['Student_master']['student_id'];
    $rowcount++;

    if($rowcount%2==0){
        $class='evenrow';
    }else{
        $class='oddrow';
    }

?>

<tr class='<?php echo $class;?>'>
<td>

<?php echo $this->Form->input("checkbox_std.", array("type" => "checkbox","value"=>$student_id));?>
</td>
    <td><?php echo $st_data['Student_master']['student_name'];?></td>
    <td><?php echo $st_data['Student_master']['student_email'];?></td>
    <td><?php echo $st_data['Student_master']['student_contact'];?></td>
    <td><?php echo $st_data['Class_master']['class_name'];?></td>


    <td>
        <?php 

            if($student_status==0){

        ?>
        <input type='button' value='Activate'>
        <?php }else{ ?>
        <input type='button' value='De-Activate'>
        <?php } ?>

    </td>
    <td>
        <input type='button' value='Edit'>
    <input type='button' value='View'>
    <input type='button' value='Delete'>

    </td>

</tr>