- (11/14) Getting output from shell_exec() at all timesTAGS:Web ProgrammingWeb Server Admin
- (06/12) View Layer - Getting count of Entities in View in Cakephp 3TAGS:CakephpCake3
- (05/23) Changing URL in beforeRedirect() in Component - Cakephp 3TAGS:CakephpCake3Web Programming
- (01/28) Foundation CSS Framework ResourcesTAGS:FoundationCss
- (01/27) Change View File from Controller in CakePHP 3TAGS:CakephpCake3UsageWeb Programming
- (01/13) Loading Model/Table Anywhere in Cake3TAGS:Cake3Cakephp
- (10/06) CURL PHP 5.5 Issue on Windows (Using Twilio SDK)
Subscribe to my feed
Changing the CakePHP Model Schema on the Fly
Posted on 06/11/2009 at 10:28 am by Kevin Wentworth
Viewed 10,008 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:
- $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.