cphalcon icon indicating copy to clipboard operation
cphalcon copied to clipboard

[BUG]: if model has field `source` ,it cannot be assigned by `assign`

Open itknight opened this issue 1 year ago • 2 comments

Questions? Forum: https://phalcon.io/forum or Discord: https://phalcon.io/discord

Describe the bug A clear and concise description of what the bug is.

I have a model CharmingU and it has a field source, when i update charming_u record by assgin ,it cannot be updated, just like below: image

i've printed the value with line numbers, and its query result ,just like belows:

image

so , i tried update it manually ,it works.,just like below:

image

i don't if it is a bug or my mistake, if you wanna reproduce it ,just like below:

To Reproduce

Provide output if related. Provide coredump if any. Use https://docs.phalcon.io/latest/generating-backtrace as reference.

1.make a model any name , 2. make sure it has a field called source. 3. update it by using assign 4. check it out.

PHP version : image

Phalcon Version: image

itknight avatar Jun 28 '24 02:06 itknight

I think this is happening, because of the setSource() method. The assign() method is calling setters if the exist, but setSource() has a special meaning.

A workaround of this problem is to use a MetaData Strategy (like Annotations) to rewrite the field source to something else without changing your database.

Also you could rename your database field.

noone-silent avatar Jun 29 '24 06:06 noone-silent

Is it possible to consider the internal properties of the Model, refer to cphalcon 3.x and add an underscore prefix, and some built-in methods also do some adjustment convention rules for easy identification

yahveh avatar Aug 10 '24 06:08 yahveh