0

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

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

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));
}

这里有没有人看到问题,或者有一个可能有帮助的答案!?

4

2 回答 2

1

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

所以在这种情况下,听起来像是使用了 hasmany 关系,因为投资组合可能包含第二个表中的许多结果?这意味着当您执行查找“全部”时,它不仅会找到该表中的所有数据,还会找到第二个表中的数据,因为它们之间的关系。

有关在此处设置关系的更多信息http://book.cakephp.org/1.3/view/1040/Relationship-Types

于 2012-11-23T14:22:12.180 回答
0

你的模型

type'=>'left', 'conditions' => array('Class_master.class_id = Student_master.student_class'), 'dependent' => true ) ); } ?>

控制器:

$this->paginate = array('limit' => 25,'order' => array('admin_id' => 'asc'), 'conditions'=>array('school_admin_id'=>$this->Session- >read('Auth.User.school_admin_id')));

                $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>

于 2015-12-28T10:57:10.640 回答