表崩れのBakeのモデルのバリデーションルール一覧

 PHPのフレームワークCakePHP Ver.2.2のBakeでモデルを作成する際、バリデーションルールの一覧が表示崩れしてしまっている場合の修正方法を下記に明記します。

 PHPのフレームワークCakePHPにはモデルやコントロールをウィザード形式で作ることができる「Bake」という機能があります。もし、御存知のない方はGoogleで「cakephp bake」と検索して頂ければいろいろなところで解説されています。

 新しいCakePHPはバージョンが既に2.2になっていて、あまりバージョン2.xは使ったことがないのですが、最近、ちょっと触っています。そのCakePHP 2.2で上記のBakeを使って、モデルを作ったところバリデーションの一覧表示が一番上の画像のように崩れてしまっていました。

 PHPを普段から使っている人ならどこを直せばいいかわかると思いますし、きっと次のバージョンでは改修されるだろうと思いますが、まあ、あまり気にしないで明記します。場所は「/lib/Cake/Console/Command/Task/ModelTask.php」ファイルの418行目付近に下記の1行を追加すれば解決します。

for ($i = 1, $m = $defaultChoice / 2; $i < $m; $i++) {
	$line = sprintf("%2d. %s", $i, $this->_validations[$i]);
	$optionText .= $line . str_repeat(" ", 31 - strlen($line));
	$optionText .= sprintf("%2d. %s", $m + $i, $this->_validations[$m + $i]);
	$optionText .= "n";  // ←ここを追加
}

 修正した結果は下記のように表示されます。

Bakeで表示崩れが直ったモデルのバリデーションルール一覧

Bakeで表示崩れが直ったモデルのバリデーションルール一覧

 別に構わないと言えば構わないことかもしれませんが、きれいに直ると気持ちいですね。