Zend_DB Fatal error: Uncaught exception ‘Zend_Db_Table_Exception’ with message ‘A table must have a primary key

Fatal error: Uncaught exception ‘Zend_Db_Table_Exception’ with message ‘A table must have a primary key …

MySQLのViewを Zend_DB_Tableを使用して読み込んだ場合のエラーです。
主キーがない!って。そりゃそうさ、Viewだよ…じゃなくて、教えてあげましょう。

class thisIsView extends Zend_Db_Table_Abstract
{
    protected $_name = 'this_is_view';
    protected $_primary = 'id';
    protected $_sequence = false;
}

 

PHPTAL用にHTMLをXHTMLに変換する

メリットだらけの PHPTAL ですが、数少ないデメリットの一つに、構文にウルサイというのがあります。HTMLを理解してコンテンツや属性を置換してくれるのですから、当然といえば当然です。

誤 <input type=”text” name=”name”>
正 <input type=”text” name=”name” />

誤 <img src=”logo.png”>
正 <img src=”logo.png” />

ただ、世の中の流れは、HTMLの次にXHTMLが流行ることなく、結局HTML5の流れです。
なので、Dreamweaver のHTMLコードも当然XHTMLではありません。

XHTMLを強要するPHPTALはもう・・・という懸念はさておき、便利なのでまだしばらくはPHPTAL使い続けます。

ということで、DreamweaverでHTMLをXHTMLに置換します。

置換方法

検索対象 現在のローカルサイト全体
検索 ソースコード
検索 <(base|br|hr|img|input|link|meta|param)([^>]*[^/])>
置換 <$1$2 />
オプション 正規表現を使用

※ jquery のファイルがヒットしたりするので、読み取り専用にしておくとイイかも。
※ 置換対象のファイル名を指定できるエディタで置換するとイイかも。秀丸とか。秀丸の場合は <\1\2 /> ですね。