I probably didn't take your reply the right way. Hopefully I wasn't too 
harsh myself.

Anyway, hopefully you'll get a response from David soon. Did you ever get 
to try out passing an empty 'file' key in the form (i.e., a hidden field)? 
That way, the key would exist and the Coupler wouldn't unset the data. I 
don't think this is a very elegant solution either, but I was curious if 
you tried it out.

On Tuesday, February 28, 2012 8:41:39 PM UTC-8, Jeremy Burns wrote:
>
> Gosh my reply sounded harsh on you Jeremy - that wasn't my intention. 
> We've commented out the line that unsets the data and it *all seems fine*, 
> which also feels dirty. The user records are saving correctly, we can 
> subsequently add images to user records and all other dedicated image 
> tables that use the coupler are functioning too. I did reach out to David 
> yesterday, hoping to learn more from him so that we can implement this 
> properly and will report back.
>
> Jeremy Burns
> Class Outfit
>
> http://www.classoutfit.com
>  
> On 28 Feb 2012, at 21:15:25, jeremyharris wrote:
>
> I didn't say I agreed with how it worked, I was just explaining what I 
> think the author's intended use case was. The question was if you were 
> missing a setting or doing anything wrong. You weren't, so I just threw out 
> some ideas based on how the Coupler works. Feel free to take it up with the 
> author or create a Coupler that works for you.
>
> I'm glad that an empty image doesn't create garbage data, that thought was 
> based off of what the Coupler does down the road (check the file and 
> populate dirname and basename).
>
> On Tuesday, February 28, 2012 12:06:23 PM UTC-8, Jeremy Burns wrote:
>>
>> I understand what you are saying but I don't think it's the full answer. 
>> It's a perfectly valid use case to have a table that has an optional image 
>> in it without the need to have a separate join table. The absence of the 
>> image doesn't create any garbage data; the user row is still valid. A bio 
>> snap for a user is good example. For the plugin to simply clear the whole 
>> data array because the optional image fields aren't populated is nuts. If 
>> the fields are empty simply return true and let the main model get on with 
>> its work.
>>
>> Jeremy Burns
>> Class Outfit
>>
>> http://www.classoutfit.com
>>  
>> On 28 Feb 2012, at 15:45:29, jeremyharris wrote:
>>
>> It should only unset the data if you are creating the User and it's 
>> missing the 'file' key. If you are updating, you shouldn't *need* the 
>> 'file' key.
>>
>> That said, you can probably get away with passing an empty (or a path to 
>> a default image) file key when you are creating the User using a hidden 
>> field. This should allow the coupler to continue with the save. This may 
>> save some empty garbage data that is probably unwanted.
>>
>> The other solution would be to detach the Coupler behavior at runtime 
>> when you don't want it to "force" you to have an image.
>>
>> The whole point of the Coupler is to tightly couple the physical image to 
>> the record, so if the image doesn't exist neither should the record. I tend 
>> to create a separate table for attachments for this very reason. A user 
>> should be allowed to exist without an image.
>>
>> On Tuesday, February 28, 2012 5:42:11 AM UTC-8, Jeremy Burns wrote:
>>>
>>> I'm using David Persson's media plugin. I have a users table that 
>>> contains the fields necessary to link to an image file, but a user 
>>> does not have to have an image. When I include the Media.Coupler 
>>> behaviour in the User model User->create always fails on User->save 
>>> when the user does not have an image because of the beforeSave in 
>>> coupler.php: 
>>>
>>>         function beforeSave(&$Model) { 
>>>                 if (!$Model->exists()) { 
>>>                         if (!isset($Model->data[$Model->alias]['file'])) 
>>> { 
>>>                                  unset($Model->data[$Model->alias]); 
>>>  <<<--- clears down my User 
>>> data 
>>>                                 return true; 
>>>                         } 
>>>                 } else { 
>>>
>>> This is unsetting the User data because the file key is missing. If I 
>>> comment out the unset my User->save is successful. The Media.Coupler 
>>> is working perfectly well for another table that hasMany images in an 
>>> associated table. 
>>>
>>> Is there a setting I need to configure or am I doing something else 
>>> wrong?
>>
>>
>> -- 
>> Our newest site for the community: CakePHP Video Tutorials 
>> http://tv.cakephp.org 
>> Check out the new CakePHP Questions site http://ask.cakephp.org and help 
>> others with their CakePHP related questions.
>>  
>>  
>> To unsubscribe from this group, send email to
>> cake-php+unsubscr...@googlegroups.com For more options, visit this group 
>> at http://groups.google.com/group/cake-php
>>
>>
>>
> On Tuesday, February 28, 2012 12:06:23 PM UTC-8, Jeremy Burns wrote:
>>
>> I understand what you are saying but I don't think it's the full answer. 
>> It's a perfectly valid use case to have a table that has an optional image 
>> in it without the need to have a separate join table. The absence of the 
>> image doesn't create any garbage data; the user row is still valid. A bio 
>> snap for a user is good example. For the plugin to simply clear the whole 
>> data array because the optional image fields aren't populated is nuts. If 
>> the fields are empty simply return true and let the main model get on with 
>> its work.
>>
>> Jeremy Burns
>> Class Outfit
>>
>> http://www.classoutfit.com
>>  
>> On 28 Feb 2012, at 15:45:29, jeremyharris wrote:
>>
>> It should only unset the data if you are creating the User and it's 
>> missing the 'file' key. If you are updating, you shouldn't *need* the 
>> 'file' key.
>>
>> That said, you can probably get away with passing an empty (or a path to 
>> a default image) file key when you are creating the User using a hidden 
>> field. This should allow the coupler to continue with the save. This may 
>> save some empty garbage data that is probably unwanted.
>>
>> The other solution would be to detach the Coupler behavior at runtime 
>> when you don't want it to "force" you to have an image.
>>
>> The whole point of the Coupler is to tightly couple the physical image to 
>> the record, so if the image doesn't exist neither should the record. I tend 
>> to create a separate table for attachments for this very reason. A user 
>> should be allowed to exist without an image.
>>
>> On Tuesday, February 28, 2012 5:42:11 AM UTC-8, Jeremy Burns wrote:
>>>
>>> I'm using David Persson's media plugin. I have a users table that 
>>> contains the fields necessary to link to an image file, but a user 
>>> does not have to have an image. When I include the Media.Coupler 
>>> behaviour in the User model User->create always fails on User->save 
>>> when the user does not have an image because of the beforeSave in 
>>> coupler.php: 
>>>
>>>         function beforeSave(&$Model) { 
>>>                 if (!$Model->exists()) { 
>>>                         if (!isset($Model->data[$Model->alias]['file'])) 
>>> { 
>>>                                  unset($Model->data[$Model->alias]); 
>>>  <<<--- clears down my User 
>>> data 
>>>                                 return true; 
>>>                         } 
>>>                 } else { 
>>>
>>> This is unsetting the User data because the file key is missing. If I 
>>> comment out the unset my User->save is successful. The Media.Coupler 
>>> is working perfectly well for another table that hasMany images in an 
>>> associated table. 
>>>
>>> Is there a setting I need to configure or am I doing something else 
>>> wrong?
>>
>>
>> -- 
>> Our newest site for the community: CakePHP Video Tutorials 
>> http://tv.cakephp.org 
>> Check out the new CakePHP Questions site http://ask.cakephp.org and help 
>> others with their CakePHP related questions.
>>  
>>  
>> To unsubscribe from this group, send email to
>> cake-php+unsubscr...@googlegroups.com For more options, visit this group 
>> at http://groups.google.com/group/cake-php
>>
>>
>>
> -- 
> Our newest site for the community: CakePHP Video Tutorials 
> http://tv.cakephp.org 
> Check out the new CakePHP Questions site http://ask.cakephp.org and help 
> others with their CakePHP related questions.
>  
>  
> To unsubscribe from this group, send email to
> cake-php+unsubscr...@googlegroups.com For more options, visit this group 
> at http://groups.google.com/group/cake-php
>
>
>
On Tuesday, February 28, 2012 8:41:39 PM UTC-8, Jeremy Burns wrote:
>
> Gosh my reply sounded harsh on you Jeremy - that wasn't my intention. 
> We've commented out the line that unsets the data and it *all seems fine*, 
> which also feels dirty. The user records are saving correctly, we can 
> subsequently add images to user records and all other dedicated image 
> tables that use the coupler are functioning too. I did reach out to David 
> yesterday, hoping to learn more from him so that we can implement this 
> properly and will report back.
>
> Jeremy Burns
> Class Outfit
>
> http://www.classoutfit.com
>  
> On 28 Feb 2012, at 21:15:25, jeremyharris wrote:
>
> I didn't say I agreed with how it worked, I was just explaining what I 
> think the author's intended use case was. The question was if you were 
> missing a setting or doing anything wrong. You weren't, so I just threw out 
> some ideas based on how the Coupler works. Feel free to take it up with the 
> author or create a Coupler that works for you.
>
> I'm glad that an empty image doesn't create garbage data, that thought was 
> based off of what the Coupler does down the road (check the file and 
> populate dirname and basename).
>
> On Tuesday, February 28, 2012 12:06:23 PM UTC-8, Jeremy Burns wrote:
>>
>> I understand what you are saying but I don't think it's the full answer. 
>> It's a perfectly valid use case to have a table that has an optional image 
>> in it without the need to have a separate join table. The absence of the 
>> image doesn't create any garbage data; the user row is still valid. A bio 
>> snap for a user is good example. For the plugin to simply clear the whole 
>> data array because the optional image fields aren't populated is nuts. If 
>> the fields are empty simply return true and let the main model get on with 
>> its work.
>>
>> Jeremy Burns
>> Class Outfit
>>
>> http://www.classoutfit.com
>>  
>> On 28 Feb 2012, at 15:45:29, jeremyharris wrote:
>>
>> It should only unset the data if you are creating the User and it's 
>> missing the 'file' key. If you are updating, you shouldn't *need* the 
>> 'file' key.
>>
>> That said, you can probably get away with passing an empty (or a path to 
>> a default image) file key when you are creating the User using a hidden 
>> field. This should allow the coupler to continue with the save. This may 
>> save some empty garbage data that is probably unwanted.
>>
>> The other solution would be to detach the Coupler behavior at runtime 
>> when you don't want it to "force" you to have an image.
>>
>> The whole point of the Coupler is to tightly couple the physical image to 
>> the record, so if the image doesn't exist neither should the record. I tend 
>> to create a separate table for attachments for this very reason. A user 
>> should be allowed to exist without an image.
>>
>> On Tuesday, February 28, 2012 5:42:11 AM UTC-8, Jeremy Burns wrote:
>>>
>>> I'm using David Persson's media plugin. I have a users table that 
>>> contains the fields necessary to link to an image file, but a user 
>>> does not have to have an image. When I include the Media.Coupler 
>>> behaviour in the User model User->create always fails on User->save 
>>> when the user does not have an image because of the beforeSave in 
>>> coupler.php: 
>>>
>>>         function beforeSave(&$Model) { 
>>>                 if (!$Model->exists()) { 
>>>                         if (!isset($Model->data[$Model->alias]['file'])) 
>>> { 
>>>                                  unset($Model->data[$Model->alias]); 
>>>  <<<--- clears down my User 
>>> data 
>>>                                 return true; 
>>>                         } 
>>>                 } else { 
>>>
>>> This is unsetting the User data because the file key is missing. If I 
>>> comment out the unset my User->save is successful. The Media.Coupler 
>>> is working perfectly well for another table that hasMany images in an 
>>> associated table. 
>>>
>>> Is there a setting I need to configure or am I doing something else 
>>> wrong?
>>
>>
>> -- 
>> Our newest site for the community: CakePHP Video Tutorials 
>> http://tv.cakephp.org 
>> Check out the new CakePHP Questions site http://ask.cakephp.org and help 
>> others with their CakePHP related questions.
>>  
>>  
>> To unsubscribe from this group, send email to
>> cake-php+unsubscr...@googlegroups.com For more options, visit this group 
>> at http://groups.google.com/group/cake-php
>>
>>
>>
> On Tuesday, February 28, 2012 12:06:23 PM UTC-8, Jeremy Burns wrote:
>>
>> I understand what you are saying but I don't think it's the full answer. 
>> It's a perfectly valid use case to have a table that has an optional image 
>> in it without the need to have a separate join table. The absence of the 
>> image doesn't create any garbage data; the user row is still valid. A bio 
>> snap for a user is good example. For the plugin to simply clear the whole 
>> data array because the optional image fields aren't populated is nuts. If 
>> the fields are empty simply return true and let the main model get on with 
>> its work.
>>
>> Jeremy Burns
>> Class Outfit
>>
>> http://www.classoutfit.com
>>  
>> On 28 Feb 2012, at 15:45:29, jeremyharris wrote:
>>
>> It should only unset the data if you are creating the User and it's 
>> missing the 'file' key. If you are updating, you shouldn't *need* the 
>> 'file' key.
>>
>> That said, you can probably get away with passing an empty (or a path to 
>> a default image) file key when you are creating the User using a hidden 
>> field. This should allow the coupler to continue with the save. This may 
>> save some empty garbage data that is probably unwanted.
>>
>> The other solution would be to detach the Coupler behavior at runtime 
>> when you don't want it to "force" you to have an image.
>>
>> The whole point of the Coupler is to tightly couple the physical image to 
>> the record, so if the image doesn't exist neither should the record. I tend 
>> to create a separate table for attachments for this very reason. A user 
>> should be allowed to exist without an image.
>>
>> On Tuesday, February 28, 2012 5:42:11 AM UTC-8, Jeremy Burns wrote:
>>>
>>> I'm using David Persson's media plugin. I have a users table that 
>>> contains the fields necessary to link to an image file, but a user 
>>> does not have to have an image. When I include the Media.Coupler 
>>> behaviour in the User model User->create always fails on User->save 
>>> when the user does not have an image because of the beforeSave in 
>>> coupler.php: 
>>>
>>>         function beforeSave(&$Model) { 
>>>                 if (!$Model->exists()) { 
>>>                         if (!isset($Model->data[$Model->alias]['file'])) 
>>> { 
>>>                                  unset($Model->data[$Model->alias]); 
>>>  <<<--- clears down my User 
>>> data 
>>>                                 return true; 
>>>                         } 
>>>                 } else { 
>>>
>>> This is unsetting the User data because the file key is missing. If I 
>>> comment out the unset my User->save is successful. The Media.Coupler 
>>> is working perfectly well for another table that hasMany images in an 
>>> associated table. 
>>>
>>> Is there a setting I need to configure or am I doing something else 
>>> wrong?
>>
>>
>> -- 
>> Our newest site for the community: CakePHP Video Tutorials 
>> http://tv.cakephp.org 
>> Check out the new CakePHP Questions site http://ask.cakephp.org and help 
>> others with their CakePHP related questions.
>>  
>>  
>> To unsubscribe from this group, send email to
>> cake-php+unsubscr...@googlegroups.com For more options, visit this group 
>> at http://groups.google.com/group/cake-php
>>
>>
>>
> -- 
> Our newest site for the community: CakePHP Video Tutorials 
> http://tv.cakephp.org 
> Check out the new CakePHP Questions site http://ask.cakephp.org and help 
> others with their CakePHP related questions.
>  
>  
> To unsubscribe from this group, send email to
> cake-php+unsubscr...@googlegroups.com For more options, visit this group 
> at http://groups.google.com/group/cake-php
>
>
>

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to