カテゴリ: コントローラー

ページ: << 1 2 3 4 5 6 7 8 >>

ページ送り機能1.2 RC2(基本版)

パーマリンク 2008/07/04 09:46:30 著者: cakephp メール
カテゴリ: ヘルパー, ビュー, コントローラー

CakePHP1.2 RC2

CakePHP1.2 からは標準でページ送り機能がついています。

まずは、コントローラーに下記のように記載します。

function index()
{
    $option = array(
                'conditions' => array(
                                    'flg' => '0'
                                ),
                'limit' => 20,
                'order' => array(
                            'created' => 'desc'
                           )
              );
    $this->paginate = $option;
    $data = $this->paginate();
    $this->set(compact('data'));
}

$option で条件や表示件数やソートなどの指定をします。


次に、ビューの書き方です。

戻る・次へのリンク

<?php e($paginator->prev('戻る')); ?>
<?php e($paginator->next('次へ')); ?>



1 | 2 | 3 | 4 などのページ番号のリンク

<?php
    e($paginator->numbers(
                    array(
                        'separator' => '&nbsp;',
                        'modulus' => 14,
                    )
                  ));
?>

modulus は表示させるページ数(現在の表示ページは除く)


上記との関連でこの先のページもある事を示す「...」の表示

<?php
    //現在のページ数-modulus/2 > 1
    if ($paginator->counter(array('format' => '%page%')) - 7 > 1) {
        e('...');
    }
?>
<?php
    //現在のページ数+modulus/2 < トータルページ数
    if ($paginator->counter(array('format' => '%page%')) + 7 < $paginator->counter(array('format' => '%pages%'))) {
        e('&nbsp;');
    }
?>


これだけでページ送り機能が実現できます。

ですが、特に管理画面などで同じようなページ送り機能が必要な場合に毎回これを書くのは面倒です。

そこで、app/views/elements/paginator.thtml を作成し、そこに上で書いたコードを全て記述します。
そして、ビュー側は作成したエレメントを呼び出すだけにします。

<?php e($this->element('paginator')); ?>

ビューがシンプルになりました。


関連記事

ページ送り機能(基本版)

パーマリンク 2008/06/30 16:30:42 著者: cakephp メール
カテゴリ: ヘルパー, ビュー, コンポーネント, コントローラー

【CakePHP1.1】
ページ送り機能の基本版です。

http://bakery.cakephp.org/articles/view/pagination-component
上記ソースを app/controllers/components/pagination.php に設置します。

http://bakery.cakephp.org/articles/view/pagination-helper
上記ソースを app/views/helpers/pagination.php に設置します。

http://bakery.cakephp.org/articles/view/pagination-element
上記ソースを app/views/elements/pagination.thtml に設置します。


コントローラーに下記のように書きます。

<?php 
class SamplesController extends AppController
{
    var $uses = array('Sample');
	var $components = array ('Pagination');
	var $helpers = array('Pagination');

	function index() {	
		$conds = NULL;
		list($order,$limit,$page) = $this->Pagination->init($conds);
		$data = $this->Sample->findAll($conds, NULL, $order, $limit, $page);

		$this->set('data',$data);
	}
}


ビューは下記のように書けば、ページ送りが表示されます。

<?php e($this->renderElement('pagination')); ?>


細かい内容を変更する場合は、設置したヘルパーなどを変更します。

コントローラーから別のビューを呼び出す方法

パーマリンク 2008/06/26 20:19:11 著者: cakephp メール
カテゴリ: ビュー, コントローラー

CakePHP は規則に沿ったやり方でやる分には、色々と省略して書けたりしてかなり便利です。

一方、その規則から外れたやり方をやりたい時は??となってしまうこともあります。

今回はあるコントローラーから、別のコントローラーに属するビューを呼び出す方法の紹介です。

アクション(sample)のビューを呼び出す場合

$this->render('sample');  // 無くてもOK


同じコントローラー内の別アクション(other_sample)のビューを呼び出す方法

$this->render('other_sample');



別のコントローラー(tests)のビューを呼び出す方法

$this->render('../tests/sample');

これで呼び出せます。

別のビューを呼び出して、そのコントローラーのビューが一つもない場合でも、app/views にフォルダだけはいるので要注意です。

入力フォームの戻るボタンの作り方

パーマリンク 2008/06/21 22:45:33 著者: cakephp メール
カテゴリ: ビュー, コントローラー

まず、ビューにこのように書きます。

<?php e($html->submit(' 前の画面に戻る ', array('name' => 'submit_back'))); ?>


続いて、コントローラーにこのように書いて、入力画面のビューを呼び出します。

// 戻るボタンクリック時
if (!empty($this->params['form']['submit_back'])) {
    $this->render(入力画面のビュー);
    return;
}

ログを出力する方法

パーマリンク 2008/06/18 19:27:16 著者: cakephp メール
カテゴリ: コントローラー

ログの出力方法は

$this->log(メッセージ, LOG_DEBUG);

これだけで出来ます。

出力先は、
app/tmp/logs/debug.log
になります。

<< 1 2 3 4 5 6 7 8 >>

2017年10月
 << <   > >>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

CakePHPに関する情報をまとめていきます。

開発スピードがアップできればうれしいです。

>>連絡はこちらへどうぞ



CakePHP最新版
CakePHP 1.2.3.8166


CakePHPの書籍

CakePHPによる実践Webアプリケーション開発

CakePHP1.2で作成する人にオススメ。
とても参考になります。

まるごとPHP!(vol.2)

安藤さんの解説が載っています。
AmazonのPagination部分は参考になります。

CakePHPによるWebアプリケーション開発

まだ読んだことありません

CakePHPポケットリファレンス
CakePHPポケットリファレンス
CakePHP1.2 でやるなら、これがあると何かと便利♪

CakePHP徹底入門
CakePHP徹底入門
CakePHP1.2 を今から始めるならここから

Fast CakePHP
Fast CakePHP
シンプルでわかりやすい CakePHP の入門書

CakePHPガイドブック
CakePHPガイドブック
CakePHP1.1 ではとても参考にした CakePHP 最初の入門書

検索

XMLフィード

16ブログ     powered by b2evolution