ページ: << 1 ... 8 9 10 11 12 13 14 15 16 17 18 ... 19 >>

tagValueからvalueに変更

パーマリンク 2008/07/08 11:51:36 著者: cakephp メール
カテゴリ: ヘルパー, ビュー

CakePHP1.2 RC2

View に Model から取得したデータを出力する時、CakePHP1.1 では

<?php e(h($html->tagValue('Sample/name'))); ?>

としていたのですが、CakePHP1.2 RC2 ではそれを使うことが出来ません。

ですので、下記のように変更しましょう。

<?php e(h($html->value('Sample/name'))); ?>

バリデーション

パーマリンク 2008/07/07 16:57:22 著者: cakephp メール
カテゴリ: モデル, ビュー, コントローラー

CakePHP1.2 RC2

CakePHP1.2 ではバリデーション機能が充実されましたので、より使いやすくなったと思います。

Controller
バリデーションを呼び出します。

if ($this->Sample->validates()) {
}


Model

<?php
class Sample extends AppModel
{
    var $validate = array(
        'name' => array(
            array(
                'rule' => 'ruleName',
                'message' => 'ルールに従って入力してください。'
            ),
            array(
                'rule' => array('customFunc', 'hoge'),
                'message' => '正しくありません。'
            ),
        ),
        'memo' => array(
            array(
                'rule' => 'ruleName',
                'message' => 'ルールに従って入力してください。'
            ),
        ),
    );

    /**
     * カスタムチェック
     */
    function customFunc($value, $param)
    {
        if (・・・・・・・・) {
            return false;
        }
        return true;
    }
}

ruleName に当たる部分の内容がとても充実しています(詳しくはこちら)が、それ以外のチェックを行いたい場合は、customFunc のように自由に function を作成し、rule から呼び出すことが出来ます。
$value には $this->data のデータが配列で入ってきます。


View

<?php e($form->error('Sample/name')); ?>

モデルで設定したメッセージを表示させたい箇所に上記のように記載します。

ページ送り機能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')); ?>

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


関連記事

Formヘルパーをより簡単に記述する方法

パーマリンク 2008/07/03 16:26:10 著者: cakephp メール
カテゴリ: ヘルパー

CakePHP1.2 RC2

<?php e($form->input('id')); ?>

普通に input タグをこのように書くと、自動で label や div が付いてきます。
それを付けないようにするには、

<?php e($form->input('id', array('label' => false, 'div' => false))); ?>

このように書くと付きません。
ですが、ほとんどの input タグで付かなくて良い場合には、毎回書くのは面倒です。

そこで下記の様に Form ヘルパーを変更することで手間を省けます。

[app/views/helpers/form.php]

function input($fieldName, $options = array()) {
    :
    :
    $options = array_merge(array('before' => null, 'between' => null, 'after' => null), $options);

    /**
     * 以下、追加内容
     */
    // label 非表示設定(デフォルト)
    if (!isset($options['label'])) {
        $options = array_merge(array('label' => false), $options);
    }
    // div 非表示設定(デフォルト)
    if (!isset($options['div'])) {
        $options = array_merge(array('div' => false), $options);
    }

CakePHP1.2のビューの拡張子

パーマリンク 2008/07/03 11:01:52 著者: cakephp メール
カテゴリ: ビュー

CakePHP1.1 の時は、ビューの拡張子が .thtml でしたが、CakePHP1.2 になってからは、.ctp となりました。
新規で作成する場合は良いのですが、CakePHP1.1 からの移行を行うとなると、拡張子を変更しなければならないです(もちろんそれ以外の問題も沢山ありますが・・・・)。


と思っていましたが、CakePHP1.2 RC2 では .thtml でも問題なく動作しました(デフォルトは .ctp です)。
これでCakePHP1.1 からの移行もより簡単になりそうですね。

<< 1 ... 8 9 10 11 12 13 14 15 16 17 18 ... 19 >>

2018年6月
 << <   > >>
          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

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