Re: Validate from within a model
You can also create the folders and make the writable before hand, that way the file will always upload. On Apr 28, 12:55 pm, cricket wrote: > On Thu, Apr 28, 2011 at 2:17 PM, func0der wrote: > > Can you explain that a bit more precise. > > http://php.net/manual/en/function.is-dir.phphttp://www.php.net/manual/en/function.is-writable.php > > I usually handle uploads on the controller/component side. Save your > model record, get the new ID, save the file, update the record. You > can leave out the initial save in some cases but you said that you're > using the id for the file name so you'd need 2 saves. -- 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
Re: Validate from within a model
On Thu, Apr 28, 2011 at 2:17 PM, func0der wrote: > Can you explain that a bit more precise. http://php.net/manual/en/function.is-dir.php http://www.php.net/manual/en/function.is-writable.php I usually handle uploads on the controller/component side. Save your model record, get the new ID, save the file, update the record. You can leave out the initial save in some cases but you said that you're using the id for the file name so you'd need 2 saves. -- 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
Re: Validate from within a model
Can you explain that a bit more precise. On Apr 28, 7:59 pm, Miles J wrote: > Why don't you just validate that the destination folder exists and is > writable? > > On Apr 28, 2:57 am, func0der wrote: > > > > > > > > > Okay. > > > I'm doing it like this. > > > I'm havin a new file uploaded. > > The file data, like mime type, name etc. will be saved in the db under > > the file id. > > I'm using that id as a filename for the files in my filesystem. > > So i need to first create a db record to use the id. > > > Afterwards i'm trying to save the file. > > If for example the folder for the upload is not writable or i don't > > have the permission or any other case i can't figure out now happens, > > then i want to cancel the upload and delete the db record so i won't > > have 2 or more of the same file in the database. > > > This user is getting an error message that something fails during the > > file upload and also i want to let the users know what they are > > supposed to do next. > > > This is my intention. > > > And i would never validate file uploads with javascripts because of 2 > > reasons: > > First, i don't know how > > Second, i know enough to know that this kind of validation wouldn't be > > save enough ^^ > > > Nothing against you, but js alone isn't the key. > > > On 27 Apr., 23:54, Miles J wrote: > > > > You dont need to use validates(), just set an error manually. > > > > $this->invalidate('fields', 'Error message.'); > > > > Also, your approach is still wrong IMO. You should be doing all error > > > checking before any save functionality is triggered. In what scenario > > > will the image NOT copy/transfer? I have yet to ever run into that > > > problem. > > > > On Apr 27, 12:31 pm, func0der wrote: > > > > > okay...i think i got it. > > > > > It is part of the MVC pattern, isn't it? > > > > > The model is NOT connected to the view or the helpers. These two are > > > > getting their data or the invalid error messages by the controller. > > > > > Am i right here? > > > > > On 27 Apr., 21:00, func0der wrote: > > > > > > I can re-save and delete, so why i shouldn't be able to revalidate? > > > > > > The error message is also in the "validationErrors" variable but while > > > > > the output of the form there is no error message. > > > > > But why? > > > > > > On 27 Apr., 20:38, Miles J wrote: > > > > > > > You can't validates() something after the model save has already > > > > > > happened. Use a behavior for validation or use my plugin. > > > > > > >https://github.com/milesj/cake-uploader > > > > > > > And an example model on how to use it. > > > > > > >https://github.com/milesj/cake-uploader/blob/master/tests/models/uplo... > > > > > > > On Apr 27, 11:18 am, func0der wrote: > > > > > > > > Hey guys, > > > > > > > > i'm having a file upload here. > > > > > > > I'm using "afterSave" to place the uploaded file in the > > > > > > > filesystem. > > > > > > > > function afterSave($created){ > > > > > > > //get the entry id > > > > > > > $this->data['DataFile']['id'] = > > > > > > > $this->getInsertId(); > > > > > > > if(!$this->saveDataFile($this->data)){ > > > > > > > > > > > > > > $this->delete($this->data['DataFile']['id']); > > > > > > > $this->data['DataFile']['data_file'] = > > > > > > > array(); > > > > > > > $this->validates(); > > > > > > > } > > > > > > > } > > > > > > > > "saveDataFile" is a function which tries to places the uploaded > > > > > > > file > > > > > > > in the file system and returns false in case of copy fails. > > > > > > > > If the copy should fail i delete the record from the database and > > > > > > > set > > > > > > > the "data_file" index which normally cotains the uploaded file > > > > > > > information to an empty array. This is because i want the > > > > > > > validation > > > > > > > to fail so the file upload field gets an error message while > > > > > > > rendering. > > > > > > > > The problem now is that the upload form does NOT! contain the > > > > > > > validation error message for that particular field. > > > > > > > > Do you know what i am doing wrong? > > > > > > > > Greetings > > > > > > > func0der -- 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
Re: Validate from within a model
Why don't you just validate that the destination folder exists and is writable? On Apr 28, 2:57 am, func0der wrote: > Okay. > > I'm doing it like this. > > I'm havin a new file uploaded. > The file data, like mime type, name etc. will be saved in the db under > the file id. > I'm using that id as a filename for the files in my filesystem. > So i need to first create a db record to use the id. > > Afterwards i'm trying to save the file. > If for example the folder for the upload is not writable or i don't > have the permission or any other case i can't figure out now happens, > then i want to cancel the upload and delete the db record so i won't > have 2 or more of the same file in the database. > > This user is getting an error message that something fails during the > file upload and also i want to let the users know what they are > supposed to do next. > > This is my intention. > > And i would never validate file uploads with javascripts because of 2 > reasons: > First, i don't know how > Second, i know enough to know that this kind of validation wouldn't be > save enough ^^ > > Nothing against you, but js alone isn't the key. > > On 27 Apr., 23:54, Miles J wrote: > > > > > > > > > You dont need to use validates(), just set an error manually. > > > $this->invalidate('fields', 'Error message.'); > > > Also, your approach is still wrong IMO. You should be doing all error > > checking before any save functionality is triggered. In what scenario > > will the image NOT copy/transfer? I have yet to ever run into that > > problem. > > > On Apr 27, 12:31 pm, func0der wrote: > > > > okay...i think i got it. > > > > It is part of the MVC pattern, isn't it? > > > > The model is NOT connected to the view or the helpers. These two are > > > getting their data or the invalid error messages by the controller. > > > > Am i right here? > > > > On 27 Apr., 21:00, func0der wrote: > > > > > I can re-save and delete, so why i shouldn't be able to revalidate? > > > > > The error message is also in the "validationErrors" variable but while > > > > the output of the form there is no error message. > > > > But why? > > > > > On 27 Apr., 20:38, Miles J wrote: > > > > > > You can't validates() something after the model save has already > > > > > happened. Use a behavior for validation or use my plugin. > > > > > >https://github.com/milesj/cake-uploader > > > > > > And an example model on how to use it. > > > > > >https://github.com/milesj/cake-uploader/blob/master/tests/models/uplo... > > > > > > On Apr 27, 11:18 am, func0der wrote: > > > > > > > Hey guys, > > > > > > > i'm having a file upload here. > > > > > > I'm using "afterSave" to place the uploaded file in the filesystem. > > > > > > > function afterSave($created){ > > > > > > //get the entry id > > > > > > $this->data['DataFile']['id'] = > > > > > > $this->getInsertId(); > > > > > > if(!$this->saveDataFile($this->data)){ > > > > > > > > > > > > $this->delete($this->data['DataFile']['id']); > > > > > > $this->data['DataFile']['data_file'] = > > > > > > array(); > > > > > > $this->validates(); > > > > > > } > > > > > > } > > > > > > > "saveDataFile" is a function which tries to places the uploaded file > > > > > > in the file system and returns false in case of copy fails. > > > > > > > If the copy should fail i delete the record from the database and > > > > > > set > > > > > > the "data_file" index which normally cotains the uploaded file > > > > > > information to an empty array. This is because i want the validation > > > > > > to fail so the file upload field gets an error message while > > > > > > rendering. > > > > > > > The problem now is that the upload form does NOT! contain the > > > > > > validation error message for that particular field. > > > > > > > Do you know what i am doing wrong? > > > > > > > Greetings > > > > > > func0der -- 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
Re: Validate from within a model
Okay. I'm doing it like this. I'm havin a new file uploaded. The file data, like mime type, name etc. will be saved in the db under the file id. I'm using that id as a filename for the files in my filesystem. So i need to first create a db record to use the id. Afterwards i'm trying to save the file. If for example the folder for the upload is not writable or i don't have the permission or any other case i can't figure out now happens, then i want to cancel the upload and delete the db record so i won't have 2 or more of the same file in the database. This user is getting an error message that something fails during the file upload and also i want to let the users know what they are supposed to do next. This is my intention. And i would never validate file uploads with javascripts because of 2 reasons: First, i don't know how Second, i know enough to know that this kind of validation wouldn't be save enough ^^ Nothing against you, but js alone isn't the key. On 27 Apr., 23:54, Miles J wrote: > You dont need to use validates(), just set an error manually. > > $this->invalidate('fields', 'Error message.'); > > Also, your approach is still wrong IMO. You should be doing all error > checking before any save functionality is triggered. In what scenario > will the image NOT copy/transfer? I have yet to ever run into that > problem. > > On Apr 27, 12:31 pm, func0der wrote: > > > okay...i think i got it. > > > It is part of the MVC pattern, isn't it? > > > The model is NOT connected to the view or the helpers. These two are > > getting their data or the invalid error messages by the controller. > > > Am i right here? > > > On 27 Apr., 21:00, func0der wrote: > > > > I can re-save and delete, so why i shouldn't be able to revalidate? > > > > The error message is also in the "validationErrors" variable but while > > > the output of the form there is no error message. > > > But why? > > > > On 27 Apr., 20:38, Miles J wrote: > > > > > You can't validates() something after the model save has already > > > > happened. Use a behavior for validation or use my plugin. > > > > >https://github.com/milesj/cake-uploader > > > > > And an example model on how to use it. > > > > >https://github.com/milesj/cake-uploader/blob/master/tests/models/uplo... > > > > > On Apr 27, 11:18 am, func0der wrote: > > > > > > Hey guys, > > > > > > i'm having a file upload here. > > > > > I'm using "afterSave" to place the uploaded file in the filesystem. > > > > > > function afterSave($created){ > > > > > //get the entry id > > > > > $this->data['DataFile']['id'] = $this->getInsertId(); > > > > > if(!$this->saveDataFile($this->data)){ > > > > > $this->delete($this->data['DataFile']['id']); > > > > > $this->data['DataFile']['data_file'] = > > > > > array(); > > > > > $this->validates(); > > > > > } > > > > > } > > > > > > "saveDataFile" is a function which tries to places the uploaded file > > > > > in the file system and returns false in case of copy fails. > > > > > > If the copy should fail i delete the record from the database and set > > > > > the "data_file" index which normally cotains the uploaded file > > > > > information to an empty array. This is because i want the validation > > > > > to fail so the file upload field gets an error message while > > > > > rendering. > > > > > > The problem now is that the upload form does NOT! contain the > > > > > validation error message for that particular field. > > > > > > Do you know what i am doing wrong? > > > > > > Greetings > > > > > func0der -- 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
Re: Validate from within a model
but thats awfully wrong and dangerous your primary validation should be in php (in the model) js validation is just a nice little addon On 28 Apr., 04:15, cake-learner wrote: > I always do validation with Jquery plugins not with cakephp function > since the form function is limited. -- 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
Re: Validate from within a model
I always do validation with Jquery plugins not with cakephp function since the form function is limited. -- 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
Re: Validate from within a model
You dont need to use validates(), just set an error manually. $this->invalidate('fields', 'Error message.'); Also, your approach is still wrong IMO. You should be doing all error checking before any save functionality is triggered. In what scenario will the image NOT copy/transfer? I have yet to ever run into that problem. On Apr 27, 12:31 pm, func0der wrote: > okay...i think i got it. > > It is part of the MVC pattern, isn't it? > > The model is NOT connected to the view or the helpers. These two are > getting their data or the invalid error messages by the controller. > > Am i right here? > > On 27 Apr., 21:00, func0der wrote: > > > > > > > > > I can re-save and delete, so why i shouldn't be able to revalidate? > > > The error message is also in the "validationErrors" variable but while > > the output of the form there is no error message. > > But why? > > > On 27 Apr., 20:38, Miles J wrote: > > > > You can't validates() something after the model save has already > > > happened. Use a behavior for validation or use my plugin. > > > >https://github.com/milesj/cake-uploader > > > > And an example model on how to use it. > > > >https://github.com/milesj/cake-uploader/blob/master/tests/models/uplo... > > > > On Apr 27, 11:18 am, func0der wrote: > > > > > Hey guys, > > > > > i'm having a file upload here. > > > > I'm using "afterSave" to place the uploaded file in the filesystem. > > > > > function afterSave($created){ > > > > //get the entry id > > > > $this->data['DataFile']['id'] = $this->getInsertId(); > > > > if(!$this->saveDataFile($this->data)){ > > > > $this->delete($this->data['DataFile']['id']); > > > > $this->data['DataFile']['data_file'] = array(); > > > > $this->validates(); > > > > } > > > > } > > > > > "saveDataFile" is a function which tries to places the uploaded file > > > > in the file system and returns false in case of copy fails. > > > > > If the copy should fail i delete the record from the database and set > > > > the "data_file" index which normally cotains the uploaded file > > > > information to an empty array. This is because i want the validation > > > > to fail so the file upload field gets an error message while > > > > rendering. > > > > > The problem now is that the upload form does NOT! contain the > > > > validation error message for that particular field. > > > > > Do you know what i am doing wrong? > > > > > Greetings > > > > func0der -- 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
Re: Validate from within a model
okay...i think i got it. It is part of the MVC pattern, isn't it? The model is NOT connected to the view or the helpers. These two are getting their data or the invalid error messages by the controller. Am i right here? On 27 Apr., 21:00, func0der wrote: > I can re-save and delete, so why i shouldn't be able to revalidate? > > The error message is also in the "validationErrors" variable but while > the output of the form there is no error message. > But why? > > On 27 Apr., 20:38, Miles J wrote: > > > You can't validates() something after the model save has already > > happened. Use a behavior for validation or use my plugin. > > >https://github.com/milesj/cake-uploader > > > And an example model on how to use it. > > >https://github.com/milesj/cake-uploader/blob/master/tests/models/uplo... > > > On Apr 27, 11:18 am, func0der wrote: > > > > Hey guys, > > > > i'm having a file upload here. > > > I'm using "afterSave" to place the uploaded file in the filesystem. > > > > function afterSave($created){ > > > //get the entry id > > > $this->data['DataFile']['id'] = $this->getInsertId(); > > > if(!$this->saveDataFile($this->data)){ > > > $this->delete($this->data['DataFile']['id']); > > > $this->data['DataFile']['data_file'] = array(); > > > $this->validates(); > > > } > > > } > > > > "saveDataFile" is a function which tries to places the uploaded file > > > in the file system and returns false in case of copy fails. > > > > If the copy should fail i delete the record from the database and set > > > the "data_file" index which normally cotains the uploaded file > > > information to an empty array. This is because i want the validation > > > to fail so the file upload field gets an error message while > > > rendering. > > > > The problem now is that the upload form does NOT! contain the > > > validation error message for that particular field. > > > > Do you know what i am doing wrong? > > > > Greetings > > > func0der -- 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
Re: Validate from within a model
I can re-save and delete, so why i shouldn't be able to revalidate? The error message is also in the "validationErrors" variable but while the output of the form there is no error message. But why? On 27 Apr., 20:38, Miles J wrote: > You can't validates() something after the model save has already > happened. Use a behavior for validation or use my plugin. > > https://github.com/milesj/cake-uploader > > And an example model on how to use it. > > https://github.com/milesj/cake-uploader/blob/master/tests/models/uplo... > > On Apr 27, 11:18 am, func0der wrote: > > > Hey guys, > > > i'm having a file upload here. > > I'm using "afterSave" to place the uploaded file in the filesystem. > > > function afterSave($created){ > > //get the entry id > > $this->data['DataFile']['id'] = $this->getInsertId(); > > if(!$this->saveDataFile($this->data)){ > > $this->delete($this->data['DataFile']['id']); > > $this->data['DataFile']['data_file'] = array(); > > $this->validates(); > > } > > } > > > "saveDataFile" is a function which tries to places the uploaded file > > in the file system and returns false in case of copy fails. > > > If the copy should fail i delete the record from the database and set > > the "data_file" index which normally cotains the uploaded file > > information to an empty array. This is because i want the validation > > to fail so the file upload field gets an error message while > > rendering. > > > The problem now is that the upload form does NOT! contain the > > validation error message for that particular field. > > > Do you know what i am doing wrong? > > > Greetings > > func0der -- 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
Re: Validate from within a model
You can't validates() something after the model save has already happened. Use a behavior for validation or use my plugin. https://github.com/milesj/cake-uploader And an example model on how to use it. https://github.com/milesj/cake-uploader/blob/master/tests/models/upload.php On Apr 27, 11:18 am, func0der wrote: > Hey guys, > > i'm having a file upload here. > I'm using "afterSave" to place the uploaded file in the filesystem. > > function afterSave($created){ > //get the entry id > $this->data['DataFile']['id'] = $this->getInsertId(); > if(!$this->saveDataFile($this->data)){ > $this->delete($this->data['DataFile']['id']); > $this->data['DataFile']['data_file'] = array(); > $this->validates(); > } > } > > "saveDataFile" is a function which tries to places the uploaded file > in the file system and returns false in case of copy fails. > > If the copy should fail i delete the record from the database and set > the "data_file" index which normally cotains the uploaded file > information to an empty array. This is because i want the validation > to fail so the file upload field gets an error message while > rendering. > > The problem now is that the upload form does NOT! contain the > validation error message for that particular field. > > Do you know what i am doing wrong? > > Greetings > func0der -- 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