Changing the CakePHP Model Schema on the Fly

Posted on 06/11/2009 at 10:28 am by Kevin Wentworth
Viewed 13,851 times | 0 comments

I have an interesting way of dynamically changing a model's validation on the fly.  I have a standard approach that involves contact forms, contest entries, etc. using a database to store which fields should be on a form.  I tweaked this over time, and recently needed to change the schema from text, which all answers have been up to this point (and IS the DB field type), to a type of date. I kept getting the error 'preg_replace expects parameter 2 to be a string, array given'.  Once I got the right schema, the errors went away.

Here is how I change the schema on the fly, from within the CakePHP model:

  1. $this->_schema = array('answer'=>array('type'=>'date'));

Simple, yet really powerful.  Maybe if I have time in the future, I will demonstrate my dynamic, db-driven forms generator.


-Kevin Wentworth

Bookmark and Share

Tags for Changing the CakePHP Model Schema on the Fly

Cakephp | Web Programming | Site Avenger

Comments for this Posting

No comments. Be the first to post a reply.

Sorry, comments are closed for this posting.

Please Email Kevin if you have any questions. Thanks!

Meet Site Avenger - Hosted Content Management System

Powered By: Site Avenger | Site Production: Saco Design