I know this is documented and it is part of the CakePHP conventions.
Maybe it is time to upgrade your 1.44 floppy to something like a zip drive?

-- 
/**
* @author Larry E. Masters
* @var string $userName
* @param string $realName
* @returns string aka PhpNut
* @access  public
*/

On Mon, Jun 1, 2009 at 5:49 PM, adallas <[email protected]> wrote:

>
> I just tracked a bug through Cake's Model code (specifically, model/
> datasources/dbo_source.php). I was shocked at how small the scope of
> the problem turned out to be.
>
> My find('all'...) included a condition, Model.fld = 3. The results
> were wrong and after some wasted time, I saw that the generated SQL
> included Model.fld = 1. Cake wasn't just adding some identity
> condition; or if it was, it was throwing my condition away. It's a
> complicated model (Model, in this case, has 9 associations). I assumed
> it had something to do with that, but it did not.
>
> Cake thinks that Tinyints are booleans. Cake parses and reconstructs
> your conditional phrases. Put those two facts together, and you see
> that Model.fld = 0 will work. Model.fld = 1 will work.  Model.fld = 2
> will morph into Model.fld = 3.
>
> One solution is to use ints instead of tinyints. Ints take 4 bytes per
> record, tinyints take 1. I can't bring myself to waste the space
> without a good reason. I suppose that's the Cake way--if you'll be
> treating the field like an ordinary int, use an ordinary int type.
>
> The solution I used was the result of carefully plodding through the
> dbo_source code--I override Model::getColumnType(). You can force any
> type for a given key. The code is:
>
>        public function getColumnType($key)
>        {
>                if ($key == 'MyModel.fld') {
>                        return 'integer';           // not 'int'
>                }
>                return parent::getColumnType($key);
>        }
>
> I hope it helps someone avoid some debugging.
>
> /alastair/
>
> >

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to