Resolved. The problem was that the Upload array of course wasn't yet
modified by the behavior: Upload => file => [file upload details] so
saveAssociated didn't like it. I've changed to calling save() and then
populating the Upload array in afterSave and then saving the Upload
(actually aliased as Resume)
function afterSave() {
if (isset($this->data['Resume'])) {
$this->data['Resume']['model'] = $this->alias;
$this->data['Resume']['foreign_key'] = $this->id;
$this->Resume->create();
$this->Resume->save($this->data);
}
return true;
}
Also, I forgot that I'd just upgraded to 2.3.6 (And you all should too if
you haven't!)
On Tue, Jun 11, 2013 at 9:30 PM, lowpass <[email protected]> wrote:
> using 2.3.5
>
> I have an 'uploads' table, with columns 'model' and 'foreign_key'. The
> Upload model uses the behavior in Nick Baker's FileUpload plugin. This
> isn't the first time I've used it, and in fact I've used the
> model/foreign_key approach for quite a lot of other things with Cake. But
> for some reason in this latest app the 'model' key is being unset from the
> data.
>
> I'm logging the data in several places. Here it is after the associated
> model has been saved, where the model and f_k values are saved to
> Upload->data. That is, I used $this->log($this->Upload->data);
>
> 2013-06-11 20:50:02 Error: JobApplication::afterSave
> 2013-06-11 20:50:02 Error: Array
> (
> [Upload] => Array
> (
> [file] => Array
> (
> [name] => snu.txt
> [type] => text/plain
> [tmp_name] => /tmp/phpE3aWNC
> [error] => 0
> [size] => 2340
> )
> [model] => JobApplication
> [foreign_key] => 8
> )
> )
>
> But then right after that, in the behavior:
>
> 2013-06-11 20:50:02 Error: FileUploadBehavior::beforeSave
> 2013-06-11 20:50:02 Error: Array
> (
> [Upload] => Array
> (
> [foreign_key] => 8
> [file] => Array
> (
> [name] => snu.txt
> [type] => text/plain
> [tmp_name] => /tmp/phpE3aWNC
> [error] => 0
> [size] => 2340
> )
> [created] => 2013-06-11 20:50:02
> )
> )
>
> I've explicitly included the 'model' key in the fieldList:
>
> public function persist($data) {
> $options = array(
> 'fieldList' => array(
> $this->alias => array(
> 'created',
> 'job_id',
> 'first_name',
> 'last_name',
> 'email',
> 'msg'
> ),
> 'Upload' => array(
> 'created',
> 'model',
> 'foreign_key',
> 'file_name',
> 'file_type',
> 'file_size'
> )
> )
> );
> return $this->saveAssociated($data, $options);
> }
>
> I've even changed 'model' to 'foo' -- in both $data and the fieldList --
> but it too is removed.
>
> What else could it be?
>
--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
---
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.