0

したがって、次のような使用履歴データベーステーブルがある場合

id     file   email   date_send
1     1.txt   A        2013-01-31 15:26:00  
2     2.txt   A        2013-01-31 15:26:00
3     3.txt   B        2013-01-30 12:26:00

そして、私はそれを次のようなビューに表示したいと思います

Date                   email        File
2013-01-31 15:26:00     A           1.txt
                                    2.txt
2013-01-30 12:26:00     B           3.txt

Cakephp のページネーションを考慮して、どうすればそれを行うことができますか。私が今持っているものはほとんどありのままに見せるだけです

Date                   email        File
2013-01-31 15:26:00     A           1.txt
2013-01-31 15:26:00     A           2.txt
2013-01-30 12:26:00     B           3.txt

コントローラーの私のコード

        $this->paginate =  array(
            'UsageHistory' => array(
                'conditions' => array(
                    'UsageHistory.user_id' => $id
                ),
                'order' => 'UsageHistory.date_send DESC'
            )
        );
        $this->set('usageHistory', $this->paginate('UsageHistory'));

そしてビューで

<?php if ( !empty($usageHistory) ) { ?>
                            <?php foreach ( $usageHistory as $history ) :?>  
                        <tr>
                            <td class="filename"><?php echo $history['UsageHistory']['file_name']; ?></td>
                            <td class="recip"><?php echo $history['UsageHistory']['recipient_email']; ?></td>
                            <td class="size"><?php echo round($history['UsageHistory']['file_size']/1048576*100)/100 . ' MB'; ?></td>
                            <td class="datesent"><?php echo $this->Time->format('m/d/o h:i A', $history['UsageHistory']['date_send']); ?></td>
                        </tr>
                            <?php endforeach; ?>
                        <?php } else { ?>
                        <tr>
                            <td colspan="3">No Usage History Yet</td>
                        </tr>
                        <?php } ?>
4

1 に答える 1

0

これは純粋にデータの表示であるため、ビューで実行する必要があります。

すべての行を表示したいので、クエリを変更する必要はありません。結果が表示される方法だけです。

「ダミー」コード

$curDate = null;

foreach($results as $row) {
   if($row['date'] != $curDate) {
       // new date/time; should be visible
       $visibleDate = $row['date'];

       // Make this the new 'current' date
       $curDate = $row['date'];
   } else {
       // Still the same date; should not be visible
       $visibleDate = '';
   }
   ?>
   <tr><td><?php echo $visibleDate ?></td><td><?php echo $row['email'] ?></td><td>...</td></tr>
   <?php
}

「メール」列についても同じことができます

于 2013-03-14T23:04:27.867 に答える