0

ビューで使用するために、コントローラーにデータを含む2番目のテーブルが必要です。この時点で、「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

結合テーブルからデータを取得する最良の方法は、ポートフォリオモデルの2つのテーブル間に関係を設定することです。

したがって、この場合、ポートフォリオには2番目のテーブルからの多くの結果が含まれる可能性があるため、多くの関係が使用されるように思われますか?つまり、「すべて」を検索すると、そのテーブルのすべてのデータだけでなく、その関係により2番目のテーブルのデータも検索されます。

関係の設定の詳細については、http://book.cakephp.org/1.3/view/1040/Relationship-Typesをご覧ください

于 2012-11-23T14:22:12.180 に答える
0

あなたのモデル

タイプ'=>'左'、'条件'=>配列(' Class_master.class_id = Student_master.student_class')、'依存'=> 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 に答える