カテゴリ: ビュー

ページ: << 1 2 3 4 5 >>

Formヘルパー

パーマリンク 2008/11/25 12:14:34 著者: cakephp メール
カテゴリ: ビュー

CakePHP1.2 RC3

Form タグの action 先を変更するには、下記の様にします。

<?php
    e($form->create('Sample', array('type' => 'post', 'url' => array('controller' => 'sample'), 'action' => 'add')));
    e($form->text('Sample.name', array('label' => false, 'size' => 50)));
    e($form->submit('登録'));
    e($form->end());
?>

画像にリンクを貼る方法

パーマリンク 2008/11/20 18:52:03 著者: cakephp メール
カテゴリ: ヘルパー, ビュー

画像にリンクを貼る方法です。

<?php e($html->link($html->image($iamge, array('border' => 0)), $url, array('target' => '_blank'), null, false)); ?>


第5引数に false を設定しないとエスケープされてしまいます。

【参考サイト】
【CakePHP】Html Helperで画像にリンクをはる方法

Warning (2): array_merge() [function.array-merge]: Argument #1 is not an array [CORE/cake/libs/view/helpers/form.php, line 1141]

パーマリンク 2008/11/13 13:59:00 著者: cakephp メール
カテゴリ: ヘルパー, ビュー, エラーメッセージ

CakePHP1.2 RC3

Form ヘルパーの select を利用しようとして、下記のメッセージが出た時の対処方法です。

Warning (2): array_merge() [function.array-merge]: Argument #1 is not an array [CORE/cake/libs/view/helpers/form.php, line 1141]
<?php e($form->select('Sample.data', $data, null, null, false)); ?>


RC2 ではこのように書いていたのですが、RC3 では Warning となってしまいます。
第4引数の null を array() に変更すれば、解決されます。

<?php e($form->select('Sample.data', $data, null, array(), false)); ?>


◆参考サイト
Migration from CakePHP 1.2 RC2 to RC3

郵便番号にハイフンを入れて表示してくれるヘルパー

パーマリンク 2008/10/08 16:54:18 著者: cakephp メール
カテゴリ: ヘルパー, ビュー

CakePHP1.2 RC2

DB で郵便番号を持たせる時は、ハイフンなしの 7 桁で持たせる場合があります。
ですが、表示させる時には、ハイフンをつけて表示させたいものです。
そんな時に使うヘルパーです。

cake/libs/view/helpers/text.php を app/views/helpers/text.php にコピーします。
そのファイルに下記内容を追加します。

function zip($text) {
    if (!empty($text) && strpos($text, '-') === false && strlen(trim($text)) == 7) {
        $text = substr($text, 0, 3) . '-' . substr($text, 3, 4);
    }
    return $text;
}


そして、View から下記のように呼び出せば、ハイフン付きの郵便番号が表示されます。

<?php e($text->zip($data['Sample']['zip'])); ?>

xmlを扱う時の注意点

パーマリンク 2008/09/25 16:25:19 著者: cakephp メール
カテゴリ: ビュー, コントローラー

CakePHP1.2 RC2

xml データを扱う場合、Controller で下記のようにすると、配列に格納してくれるので、その後の処理がとてもやり易くなります。

uses('Xml');
$file = '/path/to/sample.xml';
$xml = new Xml($file);
$xml_array = Set::reverse($xml); 


ここで注意が必要なことがあります。
xml のデータで名前が小文字で始まるものは、値が存在する場合は、そのまま小文字で渡されてくるのですが、値が空の場合は、先頭の文字が大文字に変更されて渡されます。

どうしてこのような現象が起こるかというと、cake/libs/set.php 内の Set::reverse() の処理において、

$key = Inflector::camelize($child->name);

という処理があり、更に cake/libs/inflector.php の function camelize() を見てみると、

function camelize($lowerCaseAndUnderscoredWord) {
    $replace = str_replace(" ", "", ucwords(str_replace("_", " ", $lowerCaseAndUnderscoredWord)));
    return $replace;
}

という処理がされており、この中の ucwords がアルファベットの先頭が小文字の場合、大文字に変更してくれています。

このままでは、View で受け取る際に 先頭が大文字でくるのか、小文字でくるのかがわからないので不便です。

ですので、対処方法の一つとして、Controller の配列を受け取る際に強制的に Inflector::camelize() を呼び出して、形式を固定してしまえば、View 側でデータがあるなしに関わらず決まった形式で記載することができます。

<< 1 2 3 4 5 >>

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