Lithium と mongoDB を使用して、初めてのコミュニティ ページを作成しています。私は mongo のスキーマを使用しない方法が本当に気に入っていますが、スキーマがないと作業できないという問題が 1 つあります。
たとえば、次のような単純なフォームがあります。
<?=$this->form->create();?>
<?=$this->form->field('name',array('label' => 'Topic title'));?>
<?=$this->form->field('text',array('label' => 'Content'));?>
<?=$this->form->submit('create');?>
これにより、さらに簡単に保存できます:
if($this->request->is('post')) {
$board_post = BoardPosts::create($this->request->data);
$board_post->save();
}
今では、誰もが Firebug や Developer Tools などを使用した DOM 操作によっていくつかのフォーム入力を追加することが可能です。もちろん、それはデータベース内の無意味なフィールドである可能性がありますが、実際に使用されるフィールドを誰かが追加する可能性があります。これを防ぐ唯一の方法は、モデルにスキーマを作成することです。しかし、私にとっては、スキーマのないデータベースという考え全体が役に立たなくなりますよね? また、いくつかのフィールドが発生してはならない場合、さまざまな状況/アクションのスキーマを作成する方法は?