cakePHP1.3.3のFormヘルパー

August 19, 2010,
tags: cakephp formヘルパー php


このエントリーをはてなブックマークに追加

久しぶりにcakePHP書いているのですが、formヘルパーつかったらエラーがでました。
1.2のころから$form->yearを愛用していたのですが、コピペしたらPHP大先生に怒られた。Noticeじゃねぇ、Fatal だぁーーーーー。。

Fatal error: Unsupported operand types in C:\eclipse\xampp\php\cakephp\cake\libs\view\helpers\form.php on line 1553

コピペしたのが悪かったんでしょうか?
一応おそるおそる、The Cookbookで仕様を確認したところ以下のように書いてありました。
「year(string $fieldName, int $minYear, int $maxYear, mixed $selected, array $attributes, boolean $showEmpty)」

僕は以下のように書きました


なにがわるいんですか?
文句言ってても仕方ないので、おとなしくform.phpの1553行目を見ることにしました。

1553行目の一歩手前、1552行目で、僕はとんでもない事実に気づきました。

function year($fieldName, $minYear = null, $maxYear = null, $selected = null, $attributes = array())

ちょwwwwwwww引数の数がbookとちげーよwwww
最後の引数どこにいったの (´・ω・`)?
しかたないので、yearで呼び足しているメソッドみたら、$showEmptyという変数が!!!
しかし、引数には$showEmptyらしきものがない・・・。

とおもったら1432行目あたりでこんな処理見つけました。

if (isset($attributes['empty'])) {
			$showEmpty = $attributes['empty'];
			unset($attributes['empty']);
		}

そ、その仕様変更は・・・昔からあったのですが、僕だけしらなかったのですか?
ということが引数が1個減って、selectタグに空の項目を表示したくないときは以下のようにすればいいです。


あと若干きになったのですが、1553行目に配列の足し算てきな処理があったのですが、これは配列に値を追加しているって感じでいいのですかね?はじめてみたので戸惑っていますw

※APIドキュメントのyearメソッドは$showEmpty引数がなくなっていました。やっぱAPIドキュメント見とけってはなしですねw

comments powered by Disqus