原因のコードがわかりました。
もともとどのブロックを流用したのかは忘れましたが、そのコードに、
protected $btTable = 'xxxxxx'
というのがあり、これがどうも単なる定義ではなくて、なにかを行うようです。
この行を削除したら改善されました。
このへんもよくわからないのですが、親クラスにデフォルトの動作が書いてあるのかと、先日教えてもらったblock_controller.phpやそのさらに親のcontroller.phpをみてもなにも書いてない。フレームワークって嫌い。
ブロックの開発で勝手にデータベースの読み書きがあり悩んでいます
2012年6月13日 at 18:38
あるブロックを作っていて、ほぼ追加、編集、表示と動作するのですが、編集を開いて保存するとデータベースエラーになります。
エラーは、ウインドウが開いて、MySQLのエラーメッセージが出ます。しかし、エラーと共に表示されるクエリー(SQL文)は、私がつくったコードには存在しません。
エラーに表示されるクエリーのテーブル名は、確かに私が作ったテーブルですが、フィールド名はそのテーブルには私が作っていないフィールドで、bID といういろんなテーブルに記録してあるブロックIDのフィールドです。
どうしてもエラーに成るので、私が作ったコードには必要ないのですが、bIDのフィールドを追加してみました。
するとエラーは出なくなり、全体の動作が問題なく進みます。
データベースを除くと、bID にだけブロック番号が書かれ、他のフィールドは全部NULLという意味のないレコードができています。できたあと強制的に削除しても、もともと意図していないレコードなので動作には支障ありません。
これはいったいなんでしょう?
なにかヒントでもご教示いただくと助かるのですが。
タグ:
Re: ブロックの開発で勝手にデータベースの読み書きがあり悩んでいます
2012年6月14日 at 18:46
新しいブロックタイプを作成する際のHow-Toはこちらにあります。
http://www.concrete5.org/documentation/developers/blocks/understanding-and-building-blocks-in-concrete5
ぼくも分かってませんが説明によるとbtTableを指定するとフォームの各要素のデータを自動で保存するみたいですね…
http://www.concrete5.org/documentation/developers/blocks/understanding-and-building-blocks-in-concrete5
ぼくも分かってませんが説明によるとbtTableを指定するとフォームの各要素のデータを自動で保存するみたいですね…
Your post has been saved and will be published after approval by the forum moderator.
acliss
Re: ブロックの開発で勝手にデータベースの読み書きがあり悩んでいます