Hi Dan If you are not already having to handle a legacy DB, why not go with your idea of Char(1)?
I use Char(1) all the time in preference to Boolean. My experience has repeatedly shown that I start off with a requirement for T and F but then need to expand the possibilities. Only last week I changed my Agents table from ActiveStatus = Y,N to: ActiveStatus = (W)eekly update, (M)onthly update, (Y) Active-without updates, (N) Inactive. As my table had ActiveStatus as Char(1), it was a breeze. It saved me having to introduce a new field for UpdateFrequency. Of course the above may not have been the 'right' way for everyone, but it was definitely more convenient for me! Best wishes. On Apr 6, 6:08 pm, "[email protected]" <[email protected]> wrote: > Thanks for the suggestion. I see what you mean. It might allow me to > correctly save NULL data, but I think I'm still gonna need a way to > correctly retrieve the NULLs from the database too. Also, I'm > concerned that I'd then have to set the fieldlist manually every time > I call save(), which sounds like a disaster. I need the save method > to just work. > > On 6 Apr, 16:52, brian <[email protected]> wrote: > > > I'm not sure this will work (or if it's the best way) but have a lok > > at the 3rd param for Model::save, $fieldList. I suppose you could > > create an array from the return of schema() (using just the main keys, > > I mean) and unset those fields that were not answered by the user and > > pass that to save(). > > > On Mon, Apr 6, 2009 at 9:43 AM, [email protected] > > > <[email protected]> wrote: > > > > Hi Everyone, > > > > I'm excited to be embarking on my first project using CakePHP, but > > > unfortunately after only 1 afternoon, I seem to have hit a real > > > problem. > > > > I have several boolean fields in my postgres table which can also take > > > a null value. This is because I want to make a distinction between a > > > user replying 'no' to a question, or just declining to answer it. > > > However, the database layer seems to be automatically converting the > > > NULL values to PHP false values. > > > > I guess this is because CakePHP sees that the field is of type > > > 'boolean' and so casts it to a PHP boolean type. > > > > I really need this functionality, so I'm considering a few options, > > > but I want to try and do this 'right' and stick to the convention over > > > configuration and MVC philosophies that Cake is built around. What do > > > you think is the best approach? > > > > Override functions in the database abstraction layer to make sure NULL > > > values are preserved (although I'm scared this will be difficult and > > > break other stuff). > > > > Create a new postgres data type to handle these 'tertiary' values... > > > perhaps a char(1) with the domain restricted to Y,N or X (for null). > > > > Set the type to char(1) and build some logic into the controller to > > > ensure that only Y,N,X get inserted.... Could have X as the default > > > value in the database... > > > > Or some other approach. I have no idea. Please help! Cheers, Dan --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
