CakePHP1.3でテストコード(3) -ENUM型が使えない-
公開日: : CakePHP, IT, SimpleTest
今回は、テーブル構成でENUM型を使っていた時にはまった点について。
今までの流れ
問題点
- ENUM型を使っている場合、フィクスチャでテーブルの情報を利用することができない。
内容
以下のように、フィクスチャでテーブルの情報を利用。
<?php class SampleFixture extends CakeTestFixture { var $name = 'Sample'; var $import = 'Sample'; }
しかし、テーブルでENUM型を使っているとテーブルの情報をうまく利用できない模様。
以下のようなエラーが表示されます。
Unexpected PHP error [Column type enum(‘0′,’1′) does not exist] severity [E_USER_WARNING]
実際のテーブル配下のような形です。
id | int(PK) |
view_flag | enum(‘0′,’1′) |
body | text |
submitdate | datetime |
解決策
自動でテーブルの情報を読みこむことはできないので、テーブルの情報を自ら定義するように変更します。
ただし、公式サイトにあるように対応している型は、以下のみです。
string (VARCHAR にマップ)、text (TEXT にマップ)、integer (INT にマップ)、float (FLOAT にマップ)、datetime (DATETIME にマップ)、timestamp (TIMESTAMP にマップ)、time (TIME にマップ)、date (DATE にマップ)、そして binary (BLOB にマップ)
502 Bad Gateway
そこで今回は、ENUM型をstringとして扱うようにし、フィクスチャの$fieldsを以下のように書きます。
<略> var $fields = array( 'id' => array('type' => 'integer', 'key' => 'primary'), 'view_flag' => array('type' => 'string', 'length' => 255, 'null' => false), 'body' => 'text', 'submitdate' => 'datetime' <略>
実際のENUM型で扱うことにはなりませんが、これでテストコードを書くことができます。
広告
関連記事
-
jQuery Mobileでミスしたこと -JSだけ最新にしてしまってレイアウト崩れたの巻-
* 前提(CDN先) jQuery Mobileを使う場合、cssを自前のサーバにおいて、jsはC
-
CakePHP1.3でテストコード(2) -フィクスチャをいじってみる(テストデータの動的登録)-
cakePHP1.3でのSimpleTestを使ったテストケースの第2回目。 今回は、動的にテストデ
-
iPhoneアプリ開発 芳名帳アプリ作成(3) -名前を書けるようにする-
* 今までの流れ - -[http://pplace.jp/2013/06/1531/:title=
-
Jenkins+Capistranoを設定した時にしたこと -「ポート変更」「公開鍵認証」対応-
* 前段階 上記にあるように、Jenkins+Capistranoの設定をしています。 ただし、設
-
order byでハマったこと -order by、group byの処理順序-
CakePHPでorder byとgroup byを使っていてはまったことについてのメモ。 *
-
jQuery Mobile1.2のCollapsible Listsを試してみた -画像のカスタマイズについて-
8月1日にjQuery Mobile1.2 Alphaが出ました。 まだAlphaなので自
-
CakePHPのモデルのキャッシュではまった -新しく追加したカラムに値が入らない-
タイトルのとおり、ちょこっとCakePHPではまったのでメモ。 * 作業内容 -MySQLで、ある
-
Facebookで名刺を作ってみた -Mooの名刺作成サービス-
1ヶ月~半月くらい前に話題になっていたMooの名刺作成サービス。 話題になっていた時期に注文した名
-
iPhoneアプリ開発 -Bundle identifierを変えてはまった-
* 現象 Bundle identifierを変えた際にXcodeで実機に転送しようとすると以下のエ
-
iPhoneアプリにGoogle Analyticsを入れてみる -Google Analytics SDK for iOS導入-
* 導入経緯 iPhoneアプリをリリースして、を使って「ランキング」や「ダウンロード数」は適宜チ