Mutliple validation not working
Hi, I am using cakephp version 3, i am trying to add multiple validation but its not working on password field $validator = new Validator(); $validator ->requirePresence('email', 'create') ->notEmpty('email',['message'=>__('Please enter email address.')]) ->add('email', 'email', ['rule' => 'email', 'message'=>__('Please enter valid email address.')]) ->add('email', 'unique', ['rule' => 'validateUnique', 'provider' => 'table','message'=>__('This Email is already taken.')]) ->requirePresence('password','create') ->add('password', [ 'length' => [ 'rule' => ['minLength', 6], 'message' => 'Password need to be at least 6 characters long', ]) ->notEmpty('password',['message'=>__('Please enter password.')]) ->add('password','length',['rule' => ['minLength',6],'message' => __('Password should be minimum 6 character long.')]) ->requirePresence('repassword', 'create') ->notEmpty('repassword',['message'=>__('Please enter Confirm Password.')]) ->add('repassword','customLength',[ 'rule' => function($value, $context) { if (trim($context['repassword']) != trim($context['password'])) { return false; }else{ return true; } return false; }, 'message' => __('Password and confirm password did not matched.'), ]); return $validator; Thanks, Marcus -- Sign up for our Newsletter for updates. http://cakephp.org/newsletter/signup We will soon be closing this Google Group. But don't worry, we have something better coming. Stay tuned for an updated from the CakePHP Team soon. Like Us on FaceBook https://www.facebook.com/CakePHP Follow 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 cake-php+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Form: hasMany fields table validation not working
Ok, thank you very much! I am sorry that I didn't realize this singular and plural detail. Thank you very much! Paulo 2016-02-29 11:36 GMT-03:00 Dakota: > Not a problem, glad that worked for you. > > For future reference, you can usually get nearly instant help on the IRC > channel ( > http://webchat.freenode.net/?channels=cakephp=MT1mYWxzZSY5PXRydWUmMTE9MjQ2b8), > depending on who is online of course. Stackoverflow is also usually more > active than the group. > > On Monday, 29 February 2016 16:31:11 UTC+2, Paulo Terra wrote: >> >> Great! It Works! Thank you Dakota! >> >> 2016-02-29 11:15 GMT-03:00 Dakota : >> >>> Hi Paulo, >>> >>> Your form field for address zipcode field is in the wrong format. >>> http://book.cakephp.org/3.0/en/views/helpers/form.html#creating-inputs-for-associated-data >>> shows the correct format for each type of relation. Basically, instead of >>> doing >>> $this->Form->input('address.zipcode'); >>> >>> You need to do instead do: >>> $this->Form->input('addresses.0.zipcode'); >>> >>> For hasMany relations, the key is always plural and you need to specify >>> a numeric index. >>> >>> >>> >>> On Sunday, 28 February 2016 22:07:32 UTC+2, Paulo Terra wrote: Hi, I have 3 tables: User, Buyer and Address: User hasMany Address User hasOne Buyer Address belongsTo User Buyer belongsTo User In the User form (Users/add.ctp): echo $this->Form->input('name',['label' => __('Nome')]); echo $this->Form->input('buyer.cpf',['label' => __('CPF')]); echo $this->Form->input('address.zipcode'); UsersTable.php: $this->hasMany('Addresses', [ 'foreignKey' => 'user_id' ]); $this->hasOne('Buyers', [ 'foreignKey' => 'user_id' ]); BuyersTable.php: $this->table('buyers'); $this->displayField('id'); $this->primaryKey('id'); $this->belongsTo('Users', [ 'foreignKey' => 'user_id', 'joinType' => 'INNER' ]); AddressTable.php: $this->table('addresses'); $this->displayField('id'); $this->primaryKey('id'); $this->belongsTo('Users', [ 'foreignKey' => 'user_id', 'joinType' => 'INNER' ]); The field "cpf" from Buyer is recognized by cake as it´s Model is shown in the include path: - *Model*(array) - *0*APP/Model/Table/UsersTable.php - *1*APP/Model/Entity/User.php - *2*APP/Model/Table/SurveysTable.php - *3*APP/Model/Table/BuyersTable.php - *4*APP/Model/Entity/Buyer.php - *5*APP/Model/Entity/Survey.php And "cpf" is also a "not null" field, whitch is properly verifyed in cake when I save. The problem is the "zipcode" field in "Address". It´s is also a required field but it is not validated from cake. And, as can be seen, it is not loaded in Model list. But when I change the relation Address relation from "hasMany" to "hasOne" it works (it also validade required field when I save). UsersTable.php: $this->hasOne('Addresses', [ 'foreignKey' => 'user_id' ]); $this->hasOne('Buyers', [ 'foreignKey' => 'user_id' ]); - *Model*(array) - *0*APP/Model/Table/UsersTable.php - *1*APP/Model/Entity/User.php - *2*APP/Model/Table/SurveysTable.php - *3*APP/Model/Table/BuyersTable.php - *4*APP/Model/Entity/Buyer.php - *5*APP/Model/Table/AddressesTable.php - *6*APP/Model/Entity/Address.php - *7*APP/Model/Entity/Survey.php Does anyone has a clue about what is happening? -- >>> Sign up for our Newsletter for updates. >>> http://cakephp.org/newsletter/signup >>> >>> We will soon be closing this Google Group. But don't worry, we have >>> something better coming. Stay tuned for an updated from the CakePHP Team >>> soon. >>> >>> Like Us on FaceBook https://www.facebook.com/CakePHP >>> Follow us on Twitter http://twitter.com/CakePHP >>> --- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "CakePHP" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/cake-php/M8MwE8p8SZc/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> cake-php+u...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > Sign up for our Newsletter for updates. > http://cakephp.org/newsletter/signup > > We will soon be closing this Google Group. But don't
Re: Form: hasMany fields table validation not working
Not a problem, glad that worked for you. For future reference, you can usually get nearly instant help on the IRC channel (http://webchat.freenode.net/?channels=cakephp=MT1mYWxzZSY5PXRydWUmMTE9MjQ2b8), depending on who is online of course. Stackoverflow is also usually more active than the group. On Monday, 29 February 2016 16:31:11 UTC+2, Paulo Terra wrote: > > Great! It Works! Thank you Dakota! > > 2016-02-29 11:15 GMT-03:00 Dakota: > >> Hi Paulo, >> >> Your form field for address zipcode field is in the wrong format. >> http://book.cakephp.org/3.0/en/views/helpers/form.html#creating-inputs-for-associated-data >> >> shows the correct format for each type of relation. Basically, instead of >> doing >> $this->Form->input('address.zipcode'); >> >> You need to do instead do: >> $this->Form->input('addresses.0.zipcode'); >> >> For hasMany relations, the key is always plural and you need to specify a >> numeric index. >> >> >> >> On Sunday, 28 February 2016 22:07:32 UTC+2, Paulo Terra wrote: >>> >>> Hi, >>> >>> I have 3 tables: User, Buyer and Address: >>> >>> User hasMany Address >>> User hasOne Buyer >>> Address belongsTo User >>> Buyer belongsTo User >>> >>> In the User form (Users/add.ctp): >>> >>> echo $this->Form->input('name',['label' => __('Nome')]); >>> echo $this->Form->input('buyer.cpf',['label' => __('CPF')]); >>> echo $this->Form->input('address.zipcode'); >>> >>> >>> >>> UsersTable.php: >>> >>> $this->hasMany('Addresses', [ >>> 'foreignKey' => 'user_id' >>> ]); >>> >>> $this->hasOne('Buyers', [ >>> 'foreignKey' => 'user_id' >>> ]); >>> >>> >>> >>> BuyersTable.php: >>> >>> $this->table('buyers'); >>> $this->displayField('id'); >>> $this->primaryKey('id'); >>> $this->belongsTo('Users', [ >>> 'foreignKey' => 'user_id', >>> 'joinType' => 'INNER' >>> ]); >>> >>> >>> AddressTable.php: >>> >>> $this->table('addresses'); >>> $this->displayField('id'); >>> $this->primaryKey('id'); >>> $this->belongsTo('Users', [ >>> 'foreignKey' => 'user_id', >>> 'joinType' => 'INNER' >>> ]); >>> >>> >>> >>> The field "cpf" from Buyer is recognized by cake as it´s Model is shown >>> in the include path: >>> >>> >>>- *Model*(array) >>> - *0*APP/Model/Table/UsersTable.php >>> - *1*APP/Model/Entity/User.php >>> - *2*APP/Model/Table/SurveysTable.php >>> - *3*APP/Model/Table/BuyersTable.php >>> - *4*APP/Model/Entity/Buyer.php >>> - *5*APP/Model/Entity/Survey.php >>> >>> And "cpf" is also a "not null" field, whitch is properly verifyed in >>> cake when I save. >>> >>> The problem is the "zipcode" field in "Address". It´s is also a required >>> field but it is not validated from cake. And, as can be seen, it is not >>> loaded in Model list. >>> >>> But when I change the relation Address relation from "hasMany" to >>> "hasOne" it works (it also validade required field when I save). >>> >>> >>> UsersTable.php: >>> >>> $this->hasOne('Addresses', [ >>> 'foreignKey' => 'user_id' >>> ]); >>> >>> $this->hasOne('Buyers', [ >>> 'foreignKey' => 'user_id' >>> ]); >>> >>> >>> >>>- *Model*(array) >>> - *0*APP/Model/Table/UsersTable.php >>> - *1*APP/Model/Entity/User.php >>> - *2*APP/Model/Table/SurveysTable.php >>> - *3*APP/Model/Table/BuyersTable.php >>> - *4*APP/Model/Entity/Buyer.php >>> - *5*APP/Model/Table/AddressesTable.php >>> - *6*APP/Model/Entity/Address.php >>> - *7*APP/Model/Entity/Survey.php >>> >>> >>> >>> Does anyone has a clue about what is happening? >>> >>> -- >> Sign up for our Newsletter for updates. >> http://cakephp.org/newsletter/signup >> >> We will soon be closing this Google Group. But don't worry, we have >> something better coming. Stay tuned for an updated from the CakePHP Team >> soon. >> >> Like Us on FaceBook https://www.facebook.com/CakePHP >> Follow us on Twitter http://twitter.com/CakePHP >> --- >> You received this message because you are subscribed to a topic in the >> Google Groups "CakePHP" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/cake-php/M8MwE8p8SZc/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> cake-php+u...@googlegroups.com . >> For more options, visit https://groups.google.com/d/optout. >> > > -- Sign up for our Newsletter for updates. http://cakephp.org/newsletter/signup We will soon be closing this Google Group. But don't worry, we have something better coming. Stay tuned for an updated from the CakePHP Team soon. Like Us on FaceBook https://www.facebook.com/CakePHP Follow us on Twitter http://twitter.com/CakePHP --- You received this message because you are subscribed to the Google Groups "CakePHP" group.
Re: Form: hasMany fields table validation not working
Great! It Works! Thank you Dakota! 2016-02-29 11:15 GMT-03:00 Dakota: > Hi Paulo, > > Your form field for address zipcode field is in the wrong format. > http://book.cakephp.org/3.0/en/views/helpers/form.html#creating-inputs-for-associated-data > shows the correct format for each type of relation. Basically, instead of > doing > $this->Form->input('address.zipcode'); > > You need to do instead do: > $this->Form->input('addresses.0.zipcode'); > > For hasMany relations, the key is always plural and you need to specify a > numeric index. > > > > On Sunday, 28 February 2016 22:07:32 UTC+2, Paulo Terra wrote: >> >> Hi, >> >> I have 3 tables: User, Buyer and Address: >> >> User hasMany Address >> User hasOne Buyer >> Address belongsTo User >> Buyer belongsTo User >> >> In the User form (Users/add.ctp): >> >> echo $this->Form->input('name',['label' => __('Nome')]); >> echo $this->Form->input('buyer.cpf',['label' => __('CPF')]); >> echo $this->Form->input('address.zipcode'); >> >> >> >> UsersTable.php: >> >> $this->hasMany('Addresses', [ >> 'foreignKey' => 'user_id' >> ]); >> >> $this->hasOne('Buyers', [ >> 'foreignKey' => 'user_id' >> ]); >> >> >> >> BuyersTable.php: >> >> $this->table('buyers'); >> $this->displayField('id'); >> $this->primaryKey('id'); >> $this->belongsTo('Users', [ >> 'foreignKey' => 'user_id', >> 'joinType' => 'INNER' >> ]); >> >> >> AddressTable.php: >> >> $this->table('addresses'); >> $this->displayField('id'); >> $this->primaryKey('id'); >> $this->belongsTo('Users', [ >> 'foreignKey' => 'user_id', >> 'joinType' => 'INNER' >> ]); >> >> >> >> The field "cpf" from Buyer is recognized by cake as it´s Model is shown >> in the include path: >> >> >>- *Model*(array) >> - *0*APP/Model/Table/UsersTable.php >> - *1*APP/Model/Entity/User.php >> - *2*APP/Model/Table/SurveysTable.php >> - *3*APP/Model/Table/BuyersTable.php >> - *4*APP/Model/Entity/Buyer.php >> - *5*APP/Model/Entity/Survey.php >> >> And "cpf" is also a "not null" field, whitch is properly verifyed in cake >> when I save. >> >> The problem is the "zipcode" field in "Address". It´s is also a required >> field but it is not validated from cake. And, as can be seen, it is not >> loaded in Model list. >> >> But when I change the relation Address relation from "hasMany" to >> "hasOne" it works (it also validade required field when I save). >> >> >> UsersTable.php: >> >> $this->hasOne('Addresses', [ >> 'foreignKey' => 'user_id' >> ]); >> >> $this->hasOne('Buyers', [ >> 'foreignKey' => 'user_id' >> ]); >> >> >> >>- *Model*(array) >> - *0*APP/Model/Table/UsersTable.php >> - *1*APP/Model/Entity/User.php >> - *2*APP/Model/Table/SurveysTable.php >> - *3*APP/Model/Table/BuyersTable.php >> - *4*APP/Model/Entity/Buyer.php >> - *5*APP/Model/Table/AddressesTable.php >> - *6*APP/Model/Entity/Address.php >> - *7*APP/Model/Entity/Survey.php >> >> >> >> Does anyone has a clue about what is happening? >> >> -- > Sign up for our Newsletter for updates. > http://cakephp.org/newsletter/signup > > We will soon be closing this Google Group. But don't worry, we have > something better coming. Stay tuned for an updated from the CakePHP Team > soon. > > Like Us on FaceBook https://www.facebook.com/CakePHP > Follow us on Twitter http://twitter.com/CakePHP > --- > You received this message because you are subscribed to a topic in the > Google Groups "CakePHP" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/cake-php/M8MwE8p8SZc/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > cake-php+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- Sign up for our Newsletter for updates. http://cakephp.org/newsletter/signup We will soon be closing this Google Group. But don't worry, we have something better coming. Stay tuned for an updated from the CakePHP Team soon. Like Us on FaceBook https://www.facebook.com/CakePHP Follow 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 cake-php+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Form: hasMany fields table validation not working
Hi Paulo, Your form field for address zipcode field is in the wrong format. http://book.cakephp.org/3.0/en/views/helpers/form.html#creating-inputs-for-associated-data shows the correct format for each type of relation. Basically, instead of doing $this->Form->input('address.zipcode'); You need to do instead do: $this->Form->input('addresses.0.zipcode'); For hasMany relations, the key is always plural and you need to specify a numeric index. On Sunday, 28 February 2016 22:07:32 UTC+2, Paulo Terra wrote: > > Hi, > > I have 3 tables: User, Buyer and Address: > > User hasMany Address > User hasOne Buyer > Address belongsTo User > Buyer belongsTo User > > In the User form (Users/add.ctp): > > echo $this->Form->input('name',['label' => __('Nome')]); > echo $this->Form->input('buyer.cpf',['label' => __('CPF')]); > echo $this->Form->input('address.zipcode'); > > > > UsersTable.php: > > $this->hasMany('Addresses', [ > 'foreignKey' => 'user_id' > ]); > > $this->hasOne('Buyers', [ > 'foreignKey' => 'user_id' > ]); > > > > BuyersTable.php: > > $this->table('buyers'); > $this->displayField('id'); > $this->primaryKey('id'); > $this->belongsTo('Users', [ > 'foreignKey' => 'user_id', > 'joinType' => 'INNER' > ]); > > > AddressTable.php: > > $this->table('addresses'); > $this->displayField('id'); > $this->primaryKey('id'); > $this->belongsTo('Users', [ > 'foreignKey' => 'user_id', > 'joinType' => 'INNER' > ]); > > > > The field "cpf" from Buyer is recognized by cake as it´s Model is shown in > the include path: > > >- *Model*(array) > - *0*APP/Model/Table/UsersTable.php > - *1*APP/Model/Entity/User.php > - *2*APP/Model/Table/SurveysTable.php > - *3*APP/Model/Table/BuyersTable.php > - *4*APP/Model/Entity/Buyer.php > - *5*APP/Model/Entity/Survey.php > > And "cpf" is also a "not null" field, whitch is properly verifyed in cake > when I save. > > The problem is the "zipcode" field in "Address". It´s is also a required > field but it is not validated from cake. And, as can be seen, it is not > loaded in Model list. > > But when I change the relation Address relation from "hasMany" to "hasOne" > it works (it also validade required field when I save). > > > UsersTable.php: > > $this->hasOne('Addresses', [ > 'foreignKey' => 'user_id' > ]); > > $this->hasOne('Buyers', [ > 'foreignKey' => 'user_id' > ]); > > > >- *Model*(array) > - *0*APP/Model/Table/UsersTable.php > - *1*APP/Model/Entity/User.php > - *2*APP/Model/Table/SurveysTable.php > - *3*APP/Model/Table/BuyersTable.php > - *4*APP/Model/Entity/Buyer.php > - *5*APP/Model/Table/AddressesTable.php > - *6*APP/Model/Entity/Address.php > - *7*APP/Model/Entity/Survey.php > > > > Does anyone has a clue about what is happening? > > -- Sign up for our Newsletter for updates. http://cakephp.org/newsletter/signup We will soon be closing this Google Group. But don't worry, we have something better coming. Stay tuned for an updated from the CakePHP Team soon. Like Us on FaceBook https://www.facebook.com/CakePHP Follow 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 cake-php+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Form: hasMany fields table validation not working
Hi, I have 3 tables: User, Buyer and Address: User hasMany Address User hasOne Buyer Address belongsTo User Buyer belongsTo User In the User form (Users/add.ctp): echo $this->Form->input('name',['label' => __('Nome')]); echo $this->Form->input('buyer.cpf',['label' => __('CPF')]); echo $this->Form->input('address.zipcode'); UsersTable.php: $this->hasMany('Addresses', [ 'foreignKey' => 'user_id' ]); $this->hasOne('Buyers', [ 'foreignKey' => 'user_id' ]); BuyersTable.php: $this->table('buyers'); $this->displayField('id'); $this->primaryKey('id'); $this->belongsTo('Users', [ 'foreignKey' => 'user_id', 'joinType' => 'INNER' ]); AddressTable.php: $this->table('addresses'); $this->displayField('id'); $this->primaryKey('id'); $this->belongsTo('Users', [ 'foreignKey' => 'user_id', 'joinType' => 'INNER' ]); The field "cpf" from Buyer is recognized by cake as it´s Model is shown in the include path: - *Model*(array) - *0*APP/Model/Table/UsersTable.php - *1*APP/Model/Entity/User.php - *2*APP/Model/Table/SurveysTable.php - *3*APP/Model/Table/BuyersTable.php - *4*APP/Model/Entity/Buyer.php - *5*APP/Model/Entity/Survey.php And "cpf" is also a "not null" field, whitch is properly verifyed in cake when I save. The problem is the "zipcode" field in "Address". It´s is also a required field but it is not validated from cake. And, as can be seen, it is not loaded in Model list. But when I change the relation Address relation from "hasMany" to "hasOne" it works (it also validade required field when I save). UsersTable.php: $this->hasOne('Addresses', [ 'foreignKey' => 'user_id' ]); $this->hasOne('Buyers', [ 'foreignKey' => 'user_id' ]); - *Model*(array) - *0*APP/Model/Table/UsersTable.php - *1*APP/Model/Entity/User.php - *2*APP/Model/Table/SurveysTable.php - *3*APP/Model/Table/BuyersTable.php - *4*APP/Model/Entity/Buyer.php - *5*APP/Model/Table/AddressesTable.php - *6*APP/Model/Entity/Address.php - *7*APP/Model/Entity/Survey.php Does anyone has a clue about what is happening? -- Sign up for our Newsletter for updates. http://cakephp.org/newsletter/signup We will soon be closing this Google Group. But don't worry, we have something better coming. Stay tuned for an updated from the CakePHP Team soon. Like Us on FaceBook https://www.facebook.com/CakePHP Follow 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 cake-php+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Bug: flaws in email validation/sending
Please open a ticket at https://github.com/cakephp/cakephp/issues This is just a discission board, not a bug tracker. Mark Am Samstag, 30. Januar 2016 05:33:10 UTC+1 schrieb Kim: > > >- CakePHP's email validation allows non-ASCII letter characters, e.g. >á, in the local part of the email address (by the \p{L} unicode category >construct). This should not be allowed, see >https://en.wikipedia.org/wiki/Email_address#Local_part. >- It also allows non-ASCII letter characters in the domain part. This >allows Internationalized Domain Names (IDN). The problem here lies in the >fact that this is not supported by the SmtpTransport. An SMTP client > should >convert them to so called punycode ASCII, according to >https://lists.exim.org/lurker/message/20140812.120609.bf764769.en.html. >MTA exim does not accept the SMTP sequence. By the way, conversion to >punycode can be done by PHP's idn_to_ascii(). > > This issues have been tested in the current 2.7 branch, but a quick code > inspection confirms that they are also present in the master branch. As a > workaround I have switched back to validation by PHP's filter_var(), used > in a wrapper validation method. > > The first issue can be fixed easily, although the right RFCs have to be > consulted. For the second issue, we have to decide if we support IDN for > email and if we do, support it (maybe not only in the SmtpTransport). > -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at https://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Bug: flaws in email validation/sending
- CakePHP's email validation allows non-ASCII letter characters, e.g. á, in the local part of the email address (by the \p{L} unicode category construct). This should not be allowed, see https://en.wikipedia.org/wiki/Email_address#Local_part. - It also allows non-ASCII letter characters in the domain part. This allows Internationalized Domain Names (IDN). The problem here lies in the fact that this is not supported by the SmtpTransport. An SMTP client should convert them to so called punycode ASCII, according to https://lists.exim.org/lurker/message/20140812.120609.bf764769.en.html. MTA exim does not accept the SMTP sequence. By the way, conversion to punycode can be done by PHP's idn_to_ascii(). This issues have been tested in the current 2.7 branch, but a quick code inspection confirms that they are also present in the master branch. As a workaround I have switched back to validation by PHP's filter_var(), used in a wrapper validation method. The first issue can be fixed easily, although the right RFCs have to be consulted. For the second issue, we have to decide if we support IDN for email and if we do, support it (maybe not only in the SmtpTransport). -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at https://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
hasmany validation and save data in a form, best approach
hello, lets say that i have a form that represents an invoice and the invoice items. the invoice has many invoice items relation. the form has some inputs for the invoice, and 10 rows with inputs for the invoice items: item code, item qty, item price, etc... Not always all the 10 rows are filled with invoice items and you do not wants that the validation rules be applied to these rows that are not used. the question is, what is the best approach to accomplish this? -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at https://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
validation for multiply table in single view
hello how can i set validation for multiple table in cakephp 3.x my field is Form->input('Downloads.DownloadContents.image_text',array('label' => false,'div'=>false,'type'=>'text','class'=>'form-control','placeholder'=>'Title')); ?> please give me solution for set validation in that type for situation Thanks, -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
cakephp 3 validation
Hello, How can i set validation without page refresh in cakephp 3 -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
help with uploadedFile validation rule
hello, i can not understand how uploadedFile validation rule works, http://api.cakephp.org/3.0/class-Cake.Validation.Validation.html#_uploadedFile can someone help me with and example, expanding below code? $validator ->add('image', ['rule' => ['uploadedFile, thanks -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Table's save() fails, where to get the error message? (other than validation errors)
I can't find in the documentation how to collect error messages (other than validation errors) for when a table's save() or delete() fail, how is it done? -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
saveMany validation not working correctly
I'm trying to do this With last 2.x CakePHP version, I'm trying to do a upload multiple file form with validations but not working... *DocsController.php (action add)* if ($this-request-is('post')) { if ($this-Doc-saveMany($this-request-data, array('deep' = true))) { $this-Session-setFlash(__('Ok')); } else { debug($this-Doc-validationErrors); die(); $this-Session-setFlash(__('Error')); } $this-redirect($this-referer());} *add.ctp* ?php echo $this-Form-create('Doc', array('type' = 'file')); echo $this-Form-input('files.', array( 'label' = __(New document,true),'type' = 'file', 'div' = 'input text no', 'multiple' = 'multiple', 'required' = true,)); echo $this-Form-end('Upload');? *Doc.php* class Doc extends AppModel { public $belongsTo = array( 'Project' = array( 'className' = 'Project', 'foreignKey' = 'project_id', ) ); public $validate = array( 'files' = array( 'rule' = array('extension', array('pdf')), 'required' = false, 'allowEmpty' = true, 'message' = 'Only pdf files' ), );} *Arrays* *This error is OK:* Array( [Doc] = Array ( [files] = Array ( [0] = Array ( [name] = images.jpeg [type] = image/jpeg [tmp_name] = /private/var/tmp/phpSqerRI [error] = 0 [size] = 5740 ) ) ) ) /app/Controller/DocsController.php (line 112) array( 'Doc' = array( 'files' = array( (int) 0 = 'Only pdf files' ) )) *This is the problem:* Array( [Doc] = Array ( [files] = Array ( [0] = Array ( [name] = 4_54718093804437603.pdf [type] = application/pdf [tmp_name] = /private/var/tmp/phpCfUUDx [error] = 0 [size] = 1441232 ) ) ) ) /app/Controller/DocsController.php (line 112) array( 'Doc' = array()) It's PDF, so OK but validation returns array Why return array if no broke rules?? Thanks in advance, sorry for my english. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: Validation Example
Use 'message'. For more information visit: http://book.cakephp.org/3.0/en/core-libraries/validation.html#creating-validators El viernes, 26 de junio de 2015, 7:17:53 (UTC-4:30), Kingston Abraham escribió: How will the error messages in validator will appear. Is there any live example to see -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Validation Example
How will the error messages in validator will appear. Is there any live example to see -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: Cakephp 3.x Validation Error issue
What is a best way to get answers of my issues? I am not getting any solution from last 20 days On Wednesday, May 6, 2015 at 5:17:36 PM UTC+5:30, Thomas wrote: Hello Experts, any update? On Wednesday, April 22, 2015 at 4:00:20 AM UTC+5:30, Cake Developer wrote: Hi, I am facing issue on form input validations errors. my input fields are following $this-Form-input('FormElements.text.1.title', ['type'='text', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.text.2.title', ['type'='text', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.textarea.1.description', ['type'='textarea', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.textarea.2.description', ['type'='textarea', 'label'=false, 'class'='form-control']); Please help me anyone to apply validation rules and display errors. Thanks in advance. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: Cakephp 3.x Validation Error issue
I would use StackOverflow and tag the question as cakephp-2 or cakephp-3.0 Offering help here has become increasingly difficult for me On Friday, May 15, 2015 at 3:35:39 PM UTC+2, Thomas wrote: What is a best way to get answers of my issues? I am not getting any solution from last 20 days On Wednesday, May 6, 2015 at 5:17:36 PM UTC+5:30, Thomas wrote: Hello Experts, any update? On Wednesday, April 22, 2015 at 4:00:20 AM UTC+5:30, Cake Developer wrote: Hi, I am facing issue on form input validations errors. my input fields are following $this-Form-input('FormElements.text.1.title', ['type'='text', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.text.2.title', ['type'='text', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.textarea.1.description', ['type'='textarea', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.textarea.2.description', ['type'='textarea', 'label'=false, 'class'='form-control']); Please help me anyone to apply validation rules and display errors. Thanks in advance. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: Cakephp 3.x Validation Error issue
Hello Experts, any update? On Wednesday, April 22, 2015 at 4:00:20 AM UTC+5:30, Cake Developer wrote: Hi, I am facing issue on form input validations errors. my input fields are following $this-Form-input('FormElements.text.1.title', ['type'='text', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.text.2.title', ['type'='text', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.textarea.1.description', ['type'='textarea', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.textarea.2.description', ['type'='textarea', 'label'=false, 'class'='form-control']); Please help me anyone to apply validation rules and display errors. Thanks in advance. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: Cakephp 3.x Validation Error issue
Please provide more information and also real life examples of your form code, so that we may better be able to help. Have you studied the CakePHP book? What have you tried? What does not work? Do you get any error messages? Please show the validation code you have tried, the code for the form and whatever else that may help us understand your problem. Kind regards John Aage Andersen On Wednesday, 22 April 2015 01:30:20 UTC+3, Cake Developer wrote: Hi, I am facing issue on form input validations errors. my input fields are following $this-Form-input('FormElements.text.1.title', ['type'='text', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.text.2.title', ['type'='text', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.textarea.1.description', ['type'='textarea', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.textarea.2.description', ['type'='textarea', 'label'=false, 'class'='form-control']); Please help me anyone to apply validation rules and display errors. Thanks in advance. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: Cakephp 3.x Validation Error issue
Hi John, I am working on form builder here you can see the image https://www.dropbox.com/s/tefh2auwqy97g10/form_builder.png?dl=0 It is working in cakephp 2.x fine. here are answers of your questions. *Have you studied the CakePHP book?* yes I read the cakephp 3.x cook book *What have you tried?* In cakephp 2.x I have written validations like following but I have no idea how to try multiple index validation in cakephp 3.x Cakephp 2.x Form fields are $this-Form-input('FormElement.text.1.title', ['type'='text', 'label'=false, 'class'='form-control']); $this-Form-input('FormElement.text.2.title', ['type'='text', 'label'=false, 'class'='form-control']); Cakephp 2.x Model Validations are public $validate = array( 'text'= array( 'mustNotEmpty'=array( 'rule' = 'checkForText', 'message'= '', 'last'=true) ), 'textarea'= array( 'mustNotEmpty'=array( 'rule' = 'checkForTextarea', 'message'= '', 'last'=true) ) ); function checkForText() { if(!empty($this-data['FormElement']['text'])) { foreach($this-data['FormElement']['text'] as $key=$val) { if(empty($val['title'])) { $this-validationErrors['text'][$key]['title'] = Please enter title; } } } return true; } function checkForTextarea() { if(!empty($this-data['FormElement']['textarea'])) { foreach($this-data['FormElement']['textarea'] as $key=$val) { if(empty($val['title'])) { $this-validationErrors['textarea'][$key]['title'] = Please enter title; } } } return true; } so the validation work like a charm on multi index input fields 'FormElement.text.1.title' etc. The form fields are dynamically added. I am not getting any clue to convert this code in cakephp 3.x *What does not work?* In cakephp 3.x I have tried so far. Cakephp 3.x Form fields are $this-Form-input('FormElements.text.1.title', ['type'='text', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.text.2.title', ['type'='text', 'label'=false, 'class'='form-control']); Cakephp 3.x Model Validations are public function validationForFormElements($validator) { $validator -add('text', [ 'mustNotEmpty'=[ 'rule'='checkForText', 'provider'='table', 'message'='' ] ]) -add('textarea', [ 'mustNotEmpty'=[ 'rule'='checkForTextarea', 'provider'='table', 'message'='' ] ]); return $validator; } function checkForText($value, $context) { if(!empty($context['data']['text'])) { foreach($context['data']['text'] as $key=$val) { if(empty($val['title'])) { *I have no idea how add validation error on particular index* } } } return true; } function checkForTextarea($value, $context) { if(!empty($context['data']['textarea'])) { foreach($context['data']['textarea'] as $key=$val) { if(empty($val['title'])) { *I have no idea how add validation error on particular index* } } } return true; } *Do you get any error messages?* I did not get any error messages Please let me know if anything is not clear. On Thursday, April 23, 2015 at 10:30:23 PM UTC+5:30, John Andersen wrote: Please provide more information and also real life examples of your form code, so that we may better be able to help. Have you studied the CakePHP book? What have you tried? What does not work? Do you get any error messages? Please show the validation code you have tried, the code for the form and whatever else that may help us understand your problem. Kind regards John Aage Andersen On Wednesday, 22 April 2015 01:30:20 UTC+3, Cake Developer wrote: Hi, I am facing issue on form input validations errors. my input fields are following $this-Form-input('FormElements.text.1.title', ['type'='text', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.text.2.title', ['type'='text', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.textarea.1.description', ['type'='textarea', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.textarea.2.description', ['type'='textarea', 'label'=false, 'class'='form-control']); Please help me anyone to apply validation rules and display errors. Thanks in advance. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: Cakephp 3.x Validation Error issue
Hi Experts, any help? On Wednesday, April 22, 2015 at 4:00:20 AM UTC+5:30, Cake Developer wrote: Hi, I am facing issue on form input validations errors. my input fields are following $this-Form-input('FormElements.text.1.title', ['type'='text', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.text.2.title', ['type'='text', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.textarea.1.description', ['type'='textarea', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.textarea.2.description', ['type'='textarea', 'label'=false, 'class'='form-control']); Please help me anyone to apply validation rules and display errors. Thanks in advance. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Cakephp 3.x Validation Error issue
Hi, I am facing issue on form input validations errors. my input fields are following $this-Form-input('FormElements.text.1.title', ['type'='text', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.text.2.title', ['type'='text', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.textarea.1.description', ['type'='textarea', 'label'=false, 'class'='form-control']); $this-Form-input('FormElements.textarea.2.description', ['type'='textarea', 'label'=false, 'class'='form-control']); Please help me anyone to apply validation rules and display errors. Thanks in advance. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: [Cake 2.6.3] Cake's FileUpload Validation not working; what is wrong?
It worked thanks! On Monday, April 13, 2015 at 6:18:36 PM UTC+2, John Andersen wrote: The validation in your model points to a field named image, but the view you have points to a field named submittedFile :) Which is the correct one? Enjoy, John On Monday, 13 April 2015 11:17:13 UTC+3, Willem wrote: I have a model Attachment which Belongs to another model (hasMany Attachment). In model Attachment I put a validator (from the Cake helpbook) to check against filetypes. After saveAssociated i would expect an error if uploaded a .txt file, but the model is save successfully? *Add.ctp* for($i=0;$i1;$i++) { ? div class=row ?php echo $this-Form-file('Attachment.'.$i.'.submittedfile'); ? /div ?php } *Attachment model:* ?php App::uses('AppModel', 'Model'); class Attachment extends AppModel { public $belongsTo = 'CollectionRequest'; public $validate = array( 'image' = array( 'rule' = array( 'extension', array('gif', 'jpeg', 'png', 'jpg') ), 'message' = 'Please supply a valid image.' ) ); public function beforeSave($options = array()) { parent::beforeSave($options); } public function beforeValidate($options = array()) { // ignore empty file - causes issues with form validation when file is empty and optional if (!empty($this-data[$this-alias]['error']) $this-data[$this-alias]['error']==4 $this-data[$this-alias]['size']==0) { unset($this-data[$this-alias]); } parent::beforeValidate($options); } } ? *Controller* if ($this-CollectionRequest-saveAssociated($this-request-data)) { // All good $this-Session-setFlash(__('CollectionRequest saved')); return $this-redirect(array('action' = 'index')); } thanks -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
[Cake 2.6.3] Cake's FileUpload Validation not working; what is wrong?
I have a model Attachment which Belongs to another model (hasMany Attachment). In model Attachment I put a validator (from the Cake helpbook) to check against filetypes. After saveAssociated i would expect an error if uploaded a .txt file, but the model is save successfully? *Add.ctp* for($i=0;$i1;$i++) { ? div class=row ?php echo $this-Form-file('Attachment.'.$i.'.submittedfile'); ? /div ?php } *Attachment model:* ?php App::uses('AppModel', 'Model'); class Attachment extends AppModel { public $belongsTo = 'CollectionRequest'; public $validate = array( 'image' = array( 'rule' = array( 'extension', array('gif', 'jpeg', 'png', 'jpg') ), 'message' = 'Please supply a valid image.' ) ); public function beforeSave($options = array()) { parent::beforeSave($options); } public function beforeValidate($options = array()) { // ignore empty file - causes issues with form validation when file is empty and optional if (!empty($this-data[$this-alias]['error']) $this-data[$this-alias]['error']==4 $this-data[$this-alias]['size']==0) { unset($this-data[$this-alias]); } parent::beforeValidate($options); } } ? *Controller* if ($this-CollectionRequest-saveAssociated($this-request-data)) { // All good $this-Session-setFlash(__('CollectionRequest saved')); return $this-redirect(array('action' = 'index')); } thanks -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: [Cake 2.6.3] Cake's FileUpload Validation not working; what is wrong?
The validation in your model points to a field named image, but the view you have points to a field named submittedFile :) Which is the correct one? Enjoy, John On Monday, 13 April 2015 11:17:13 UTC+3, Willem wrote: I have a model Attachment which Belongs to another model (hasMany Attachment). In model Attachment I put a validator (from the Cake helpbook) to check against filetypes. After saveAssociated i would expect an error if uploaded a .txt file, but the model is save successfully? *Add.ctp* for($i=0;$i1;$i++) { ? div class=row ?php echo $this-Form-file('Attachment.'.$i.'.submittedfile'); ? /div ?php } *Attachment model:* ?php App::uses('AppModel', 'Model'); class Attachment extends AppModel { public $belongsTo = 'CollectionRequest'; public $validate = array( 'image' = array( 'rule' = array( 'extension', array('gif', 'jpeg', 'png', 'jpg') ), 'message' = 'Please supply a valid image.' ) ); public function beforeSave($options = array()) { parent::beforeSave($options); } public function beforeValidate($options = array()) { // ignore empty file - causes issues with form validation when file is empty and optional if (!empty($this-data[$this-alias]['error']) $this-data[$this-alias]['error']==4 $this-data[$this-alias]['size']==0) { unset($this-data[$this-alias]); } parent::beforeValidate($options); } } ? *Controller* if ($this-CollectionRequest-saveAssociated($this-request-data)) { // All good $this-Session-setFlash(__('CollectionRequest saved')); return $this-redirect(array('action' = 'index')); } thanks -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: [Cake 2.6.3] Cake's FileUpload Validation not working; what is wrong?
Hi, thanks, will try this ASAP. I got it mixed up thiking it was an alias/name/labe as in multiple validations per field. :-S On Monday, April 13, 2015 at 6:18:36 PM UTC+2, John Andersen wrote: The validation in your model points to a field named image, but the view you have points to a field named submittedFile :) Which is the correct one? Enjoy, John On Monday, 13 April 2015 11:17:13 UTC+3, Willem wrote: I have a model Attachment which Belongs to another model (hasMany Attachment). In model Attachment I put a validator (from the Cake helpbook) to check against filetypes. After saveAssociated i would expect an error if uploaded a .txt file, but the model is save successfully? *Add.ctp* for($i=0;$i1;$i++) { ? div class=row ?php echo $this-Form-file('Attachment.'.$i.'.submittedfile'); ? /div ?php } *Attachment model:* ?php App::uses('AppModel', 'Model'); class Attachment extends AppModel { public $belongsTo = 'CollectionRequest'; public $validate = array( 'image' = array( 'rule' = array( 'extension', array('gif', 'jpeg', 'png', 'jpg') ), 'message' = 'Please supply a valid image.' ) ); public function beforeSave($options = array()) { parent::beforeSave($options); } public function beforeValidate($options = array()) { // ignore empty file - causes issues with form validation when file is empty and optional if (!empty($this-data[$this-alias]['error']) $this-data[$this-alias]['error']==4 $this-data[$this-alias]['size']==0) { unset($this-data[$this-alias]); } parent::beforeValidate($options); } } ? *Controller* if ($this-CollectionRequest-saveAssociated($this-request-data)) { // All good $this-Session-setFlash(__('CollectionRequest saved')); return $this-redirect(array('action' = 'index')); } thanks -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: File upload validation
Charles, thank you for the great effort! But is there no other option than move the validation into the controller instead of doing it in the model? The code I wrote only contains one single if/else and is very clear to me. Okay, it's not working so I'm not getting anywhere for the moment huh ;) Can you confirm that extension rule in CakePHP is validation the ['type'] variable in the FILES array? If yes, I realy don't understand why I keep getting validation errors on the validExtension rule :s -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: File upload validation
I think we have a misunderstanding. The code I sent you was for your model. The only thing that changes was you had some code in the afterValidate function and I provided you with an alternative to do all the legwork in the beforeValidate function. If you use beforeValidate you can do all the photo uploading and field-setting logic and return TRUE. Alternatively, you can return FALSE to prevent further validation if there is an error. *NOTE: If *beforeValidate* returns FALSE CakePHP will short-circuit and * validates()* DOES NOT execute. * *NOTE: If *beforeValidate* returns TRUE CakePHP will execute *validates()*. **Performing the file upload in the *afterValidate* function is TOO LATE; The Model has already attempted to validate your field *photo* and the error is already set before *afterValidate* callback event is executed.* *NOTE: The function **afterValidate** is called by the ModelValidator object inside the **errors* * function. The ModelValidator **errors** function performs tests all the fields, sets errors, and finally executes * afterValidate* before returning.* SEE: http://book.cakephp.org/2.0/en/models/callback-methods.html Sincerely, Charles A Beasley On Sun, Mar 1, 2015 at 5:56 AM, Sam Clauw sam.cl...@gmail.com wrote: Charles, thank you for the great effort! But is there no other option than move the validation into the controller instead of doing it in the model? The code I wrote only contains one single if/else and is very clear to me. Okay, it's not working so I'm not getting anywhere for the moment huh ;) Can you confirm that extension rule in CakePHP is validation the ['type'] variable in the FILES array? If yes, I realy don't understand why I keep getting validation errors on the validExtension rule :s -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: File upload validation
Sam: Based on your code the value for $this-data['Outlet']['photo'] is an array instead of a string field indicated by $validate and $this-set('photo', $filename). This suggests that the type for $this-data['Outlet'][ 'photo'] is transitioning from an array to a string. You would have to make sure that $this-data['Outlet']['photo'] contains a string value when validate() is executed. Is it possible that your afterValidate function is supposed to be beforeValidate? --Charles On Sat, Feb 28, 2015 at 2:42 PM, Sam Clauw sam.cl...@gmail.com wrote: I have a problem with my file upload validation in CakePHP. When I add a new record with an image upload field... - ... image should be required. - ... image file extension sould be jpg, png or gif. When I edit an existing record with an image upload field... - ... image is not required. - ... when image is choosen: image file extension sould be jpg, png or gif. Here's my best model code attempt so far: ?php class Outlet extends CoasterCmsAppModel { public $validate = array( 'name' = array( 'rule' = 'notEmpty', // verplicht 'message' = 'Name is required.', 'allowEmpty' = true ), 'intro' = array( 'rule' = 'notEmpty', // verplicht 'message' = 'Intro is required.' ), 'photo' = array( 'validFileSize' = array( // zelf gekozen naam van de regel 'rule' = array('filesize', '', 0), // verplicht 'on' = 'create', 'message' = 'Photo is required.' ), 'validExtension' = array( // zelf gekozen naam van de regel 'rule' = array('extension', array('jpg', 'jpeg', 'png', 'gif')), 'on' = 'create', 'message' = 'Photo has to contain a valid extension (jpg, jpeg, png or gif).' ), 'validExtension' = array( // zelf gekozen naam van de regel 'rule' = array('extension', array('jpg', 'jpeg', 'png', 'gif')), 'allowEmpty' = true, 'on' = 'update', 'message' = 'Photo has to contain a valid extension (jpg, jpeg, png or gif).' ) ) ); public function afterValidate() { $filename = $this-data['Outlet']['photo']['name']; if (!empty($filename)) { move_uploaded_file($this-data['Outlet']['photo']['tmp_name'], WWW_ROOT . 'img' . DS . 'outlets' . DS . $filename); $this-set('photo', $filename); } else { unset($this-data['Outlet']['photo']); } } } The add validation works fine for me. But strange as it is, when I edit a record, I keep getting the error message Photo has to contain a valid extension (jpg, jpeg, png or gif). Somebody who can help me out of this? ;) -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: File upload validation
I think you should change your function to beforeValidate On Feb 28, 2015 5:54 PM, Sam Clauw sam.cl...@gmail.com wrote: Okay Charles , that makes sense so I changed my code: ?php class Outlet extends CoasterCmsAppModel { public $validate = array( 'name' = array( 'rule' = 'notEmpty', // verplicht 'message' = 'Nameis required.', 'allowEmpty' = true ), 'intro' = array( 'rule' = 'notEmpty', // verplicht 'message' = 'Intro is required.' ), 'photo' = array( 'validFileSize' = array( // zelf gekozen naam van de regel 'rule' = array('filesize', '', 0), // verplicht 'on' = 'create', 'message' = 'Photo is required.' ) ), 'photoTemp' = array( 'validExtension' = array( // zelf gekozen naam van de regel 'rule' = array('extension', array('jpg', 'jpeg', 'png', 'gif')), 'on' = 'create', 'message' = 'Photo has to contain a valid extension (jpg, jpeg, png or gif).' ), 'validExtension' = array( // zelf gekozen naam van de regel 'rule' = array('extension', array('jpg', 'jpeg', 'png', 'gif')), 'allowEmpty' = true, 'on' = 'update', 'message' = 'Photo has to contain a valid extension (jpg, jpeg, png or gif).' ) ) ); public function beforeValidate() { $this-data['Outlet']['photoTemp'] = $this-data['Outlet']['photo' ]; $this-data['Outlet']['photo'] = $this-data['Outlet']['photoTemp' ]['name']; } public function afterValidate() { $filename = $this-data['Outlet']['photo']; if (!empty($filename)) { move_uploaded_file($this-data['Outlet']['photoTemp'][ 'tmp_name'], WWW_ROOT . 'img' . DS . 'outlets' . DS . $filename); } else { unset($this-data['Outlet']['photo']); } unset($this-data['Outlet']['photoTemp']); } } However, I still get the error message that I should upload a file with a correct extension. It's just like 'allowEmpty' = true isn't working at all. I quess in my case it's checking the value in $this-data['Outlet'][ 'photoTemp']['type'] so what could possibly be the problem? -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: File upload validation
Okay Charles , that makes sense so I changed my code: ?php class Outlet extends CoasterCmsAppModel { public $validate = array( 'name' = array( 'rule' = 'notEmpty', // verplicht 'message' = 'Nameis required.', 'allowEmpty' = true ), 'intro' = array( 'rule' = 'notEmpty', // verplicht 'message' = 'Intro is required.' ), 'photo' = array( 'validFileSize' = array( // zelf gekozen naam van de regel 'rule' = array('filesize', '', 0), // verplicht 'on' = 'create', 'message' = 'Photo is required.' ) ), 'photoTemp' = array( 'validExtension' = array( // zelf gekozen naam van de regel 'rule' = array('extension', array('jpg', 'jpeg', 'png', 'gif')), 'on' = 'create', 'message' = 'Photo has to contain a valid extension (jpg, jpeg, png or gif).' ), 'validExtension' = array( // zelf gekozen naam van de regel 'rule' = array('extension', array('jpg', 'jpeg', 'png', 'gif')), 'allowEmpty' = true, 'on' = 'update', 'message' = 'Photo has to contain a valid extension (jpg, jpeg, png or gif).' ) ) ); public function beforeValidate() { $this-data['Outlet']['photoTemp'] = $this-data['Outlet']['photo']; $this-data['Outlet']['photo'] = $this-data['Outlet']['photoTemp'][ 'name']; } public function afterValidate() { $filename = $this-data['Outlet']['photo']; if (!empty($filename)) { move_uploaded_file($this-data['Outlet']['photoTemp']['tmp_name' ], WWW_ROOT . 'img' . DS . 'outlets' . DS . $filename); } else { unset($this-data['Outlet']['photo']); } unset($this-data['Outlet']['photoTemp']); } } However, I still get the error message that I should upload a file with a correct extension. It's just like 'allowEmpty' = true isn't working at all. I quess in my case it's checking the value in $this-data['Outlet'][ 'photoTemp']['type'] so what could possibly be the problem? -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: File upload validation
I'm sorry.. I replied quickly via cell phone. A better response is as follows. Try the following code: ?php class Outlet extends CoasterCmsAppModel { public $validate = array( 'name' = array( 'rule' = 'notEmpty', // verplicht 'message' = 'Nameis required.', 'allowEmpty' = true ), 'intro' = array( 'rule' = 'notEmpty', // verplicht 'message' = 'Intro is required.' ), 'photo' = array( 'validFileSize' = array( // zelf gekozen naam van de regel 'rule' = array('filesize', '', 0), // verplicht 'on' = 'create', 'message' = 'Photo is required.' ) ), 'photoTemp' = array( 'validExtension' = array( // zelf gekozen naam van de regel 'rule' = array('extension', array('jpg', 'jpeg', 'png', 'gif')), 'on' = 'create', 'message' = 'Photo has to contain a valid extension (jpg, jpeg, png or gif).' ), 'validExtension' = array( // zelf gekozen naam van de regel 'rule' = array('extension', array('jpg', 'jpeg', 'png', 'gif')), 'allowEmpty' = true, 'on' = 'update', 'message' = 'Photo has to contain a valid extension (jpg, jpeg, png or gif).' ) ) ); public function beforeValidate() { $unset_photo = false; if ( is_array( $this-data['Outlet']['photo'] ) ) { $filename = false; $tmp_filename = false; $unset_photo = true; $upload_path = WWW_ROOT .'img' . DS . 'outlets' . DS; if ( isset( $this-data['Outlet']['photo']['name'] ) ) { $filename = trim($this-data['Outlet']['photo']['name']); } if ( isset( $this-data['Outlet']['photo']['tmp_name'] ) ) { $tmp_filename = trim($this-data['Outlet']['photo']['tmp_name']); } if ( ! empty( $tmp_filename ) ! empty( $filename ) ) { // Move the uploaded file to the new directory if(!move_uploaded_file($tmp_filename, $upload_path basename($filename))) { /* * Handle upload error and return FALSE; e.g. * $this-validationErrors['Outlet']['photo'] = 'Failed to upload file ' . $filename; */ } else { $this-data['Outlet']['photo'] = $filename; // SUCCESS } } else if ( ! empty( $this-data['Outlet']['photo'] ) ) ) { /* * Handle Invalid input error and return FALSE; e.g. * * $this-validationErrors['Outlet']['photo'] = 'Invalid input: photo tmp_name required'; * $this-validationErrors['Outlet']['photo'] = 'Invalid input: photo name required'; */ } else { /* * Silently unset and ignore an empty array. */ unset($this-data['Outlet']['photo']); } } } ? On Sat, Feb 28, 2015 at 6:24 PM, Charles Beasley carmelc...@gmail.com wrote: I think you should change your function to beforeValidate On Feb 28, 2015 5:54 PM, Sam Clauw sam.cl...@gmail.com wrote: Okay Charles , that makes sense so I changed my code: ?php class Outlet extends CoasterCmsAppModel { public $validate = array( 'name' = array( 'rule' = 'notEmpty', // verplicht 'message' = 'Nameis required.', 'allowEmpty' = true ), 'intro' = array( 'rule' = 'notEmpty', // verplicht 'message' = 'Intro is required.' ), 'photo' = array( 'validFileSize' = array( // zelf gekozen naam van de regel 'rule' = array('filesize', '', 0), // verplicht 'on' = 'create', 'message' = 'Photo is required.' ) ), 'photoTemp' = array( 'validExtension' = array( // zelf gekozen naam van de regel 'rule' = array('extension', array('jpg', 'jpeg', 'png', 'gif')), 'on' = 'create', 'message' = 'Photo has to contain a valid extension (jpg, jpeg, png or gif).' ), 'validExtension' = array( // zelf gekozen naam van de regel 'rule' = array('extension', array('jpg', 'jpeg', 'png', 'gif')), 'allowEmpty' = true, 'on' = 'update', 'message' = 'Photo has to contain a valid extension (jpg, jpeg, png or gif).' ) ) ); public function beforeValidate() { $this-data['Outlet']['photoTemp'] = $this-data['Outlet'][
Re: File upload validation
You can get rid of the $unset_photo variable I didn't end up using it. --Charles On Sat, Feb 28, 2015 at 6:48 PM, Charles Beasley carmelc...@gmail.com wrote: I'm sorry.. I replied quickly via cell phone. A better response is as follows. Try the following code: ?php class Outlet extends CoasterCmsAppModel { public $validate = array( 'name' = array( 'rule' = 'notEmpty', // verplicht 'message' = 'Nameis required.', 'allowEmpty' = true ), 'intro' = array( 'rule' = 'notEmpty', // verplicht 'message' = 'Intro is required.' ), 'photo' = array( 'validFileSize' = array( // zelf gekozen naam van de regel 'rule' = array('filesize', '', 0), // verplicht 'on' = 'create', 'message' = 'Photo is required.' ) ), 'photoTemp' = array( 'validExtension' = array( // zelf gekozen naam van de regel 'rule' = array('extension', array('jpg', 'jpeg', 'png', 'gif')), 'on' = 'create', 'message' = 'Photo has to contain a valid extension (jpg, jpeg, png or gif).' ), 'validExtension' = array( // zelf gekozen naam van de regel 'rule' = array('extension', array('jpg', 'jpeg', 'png', 'gif')), 'allowEmpty' = true, 'on' = 'update', 'message' = 'Photo has to contain a valid extension (jpg, jpeg, png or gif).' ) ) ); public function beforeValidate() { $unset_photo = false; if ( is_array( $this-data['Outlet']['photo'] ) ) { $filename = false; $tmp_filename = false; $unset_photo = true; $upload_path = WWW_ROOT .'img' . DS . 'outlets' . DS; if ( isset( $this-data['Outlet']['photo']['name'] ) ) { $filename = trim($this-data['Outlet']['photo']['name']); } if ( isset( $this-data['Outlet']['photo']['tmp_name'] ) ) { $tmp_filename = trim($this-data['Outlet']['photo']['tmp_name']); } if ( ! empty( $tmp_filename ) ! empty( $filename ) ) { // Move the uploaded file to the new directory if(!move_uploaded_file($tmp_filename, $upload_path basename($filename))) { /* * Handle upload error and return FALSE; e.g. * $this-validationErrors['Outlet']['photo'] = 'Failed to upload file ' . $filename; */ } else { $this-data['Outlet']['photo'] = $filename; // SUCCESS } } else if ( ! empty( $this-data['Outlet']['photo'] ) ) ) { /* * Handle Invalid input error and return FALSE; e.g. * * $this-validationErrors['Outlet']['photo'] = 'Invalid input: photo tmp_name required'; * $this-validationErrors['Outlet']['photo'] = 'Invalid input: photo name required'; */ } else { /* * Silently unset and ignore an empty array. */ unset($this-data['Outlet']['photo']); } } } ? On Sat, Feb 28, 2015 at 6:24 PM, Charles Beasley carmelc...@gmail.com wrote: I think you should change your function to beforeValidate On Feb 28, 2015 5:54 PM, Sam Clauw sam.cl...@gmail.com wrote: Okay Charles , that makes sense so I changed my code: ?php class Outlet extends CoasterCmsAppModel { public $validate = array( 'name' = array( 'rule' = 'notEmpty', // verplicht 'message' = 'Nameis required.', 'allowEmpty' = true ), 'intro' = array( 'rule' = 'notEmpty', // verplicht 'message' = 'Intro is required.' ), 'photo' = array( 'validFileSize' = array( // zelf gekozen naam van de regel 'rule' = array('filesize', '', 0), // verplicht 'on' = 'create', 'message' = 'Photo is required.' ) ), 'photoTemp' = array( 'validExtension' = array( // zelf gekozen naam van de regel 'rule' = array('extension', array('jpg', 'jpeg', 'png', 'gif')), 'on' = 'create', 'message' = 'Photo has to contain a valid extension (jpg, jpeg, png or gif).' ), 'validExtension' = array( // zelf gekozen naam van de regel 'rule' = array('extension', array('jpg', 'jpeg', 'png', 'gif')), 'allowEmpty' = true, 'on' =
File upload validation
I have a problem with my file upload validation in CakePHP. When I add a new record with an image upload field... - ... image should be required. - ... image file extension sould be jpg, png or gif. When I edit an existing record with an image upload field... - ... image is not required. - ... when image is choosen: image file extension sould be jpg, png or gif. Here's my best model code attempt so far: ?php class Outlet extends CoasterCmsAppModel { public $validate = array( 'name' = array( 'rule' = 'notEmpty', // verplicht 'message' = 'Name is required.', 'allowEmpty' = true ), 'intro' = array( 'rule' = 'notEmpty', // verplicht 'message' = 'Intro is required.' ), 'photo' = array( 'validFileSize' = array( // zelf gekozen naam van de regel 'rule' = array('filesize', '', 0), // verplicht 'on' = 'create', 'message' = 'Photo is required.' ), 'validExtension' = array( // zelf gekozen naam van de regel 'rule' = array('extension', array('jpg', 'jpeg', 'png', 'gif')), 'on' = 'create', 'message' = 'Photo has to contain a valid extension (jpg, jpeg, png or gif).' ), 'validExtension' = array( // zelf gekozen naam van de regel 'rule' = array('extension', array('jpg', 'jpeg', 'png', 'gif')), 'allowEmpty' = true, 'on' = 'update', 'message' = 'Photo has to contain a valid extension (jpg, jpeg, png or gif).' ) ) ); public function afterValidate() { $filename = $this-data['Outlet']['photo']['name']; if (!empty($filename)) { move_uploaded_file($this-data['Outlet']['photo']['tmp_name'], WWW_ROOT . 'img' . DS . 'outlets' . DS . $filename); $this-set('photo', $filename); } else { unset($this-data['Outlet']['photo']); } } } The add validation works fine for me. But strange as it is, when I edit a record, I keep getting the error message Photo has to contain a valid extension (jpg, jpeg, png or gif). Somebody who can help me out of this? ;) -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: CakePHP-3 Plugins form validation messages and field values
Lorenzo, I got the problem and the solution both. The problem was happening because of page reload. So now with the help of session i can fix that or I got modelless forms in cakephp which is also providing the solution. thanks for you help. On Monday, February 23, 2015 at 1:57:41 PM UTC+5:30, José Lorenzo wrote: Can you show the code you are using? Use gist.github.com to show your table class, controller and form code. On Thursday, February 19, 2015 at 7:19:22 AM UTC+1, Gaurav Kumar wrote: I have just created a CommentManager plugin. Created the comment form in post's view.ctp file and able to add the comments. But when the values of the comment form are wrong(email format is not proper or empty) then i am not getting the validation message in front of the respected fields and the values are not refilled. Also would like to know what would be the proper way to create a comment form inside a view file of posts. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: Handle validation rule message inside controller
http://book.cakephp.org/2.0/en/models/data-validation/validating-data-from-the-controller.html First, set the data to the model: $this-ModelName-set($this-request-data); Then, to check if the data validates, use the validates method of the model, which will return true if it validates and false if it doesn’t: if ($this-ModelName-validates()) { // it validated logic } else { // didn’t validate logic $errors = $this-ModelName-validationErrors; } Andras On Feb 21, 2015, at 12:50 AM, giuseppe giorgio gioz...@gmail.com wrote: Hi there, i've start to learn cake php yesterday, and i have a question. I've declared validation array inside my model class like: public $validate = array( 'username' = array( 'alphaNumeric' = array( 'rule' = 'alphaNumeric', 'required' = true, 'message' = 'username required' ), 'unique' = array( 'rule' = 'isUnique', 'required' = 'create', 'message' = 'Username already used' ) )); When i add a new record to my database by using add(), everithing works fine, and alert message are showed automatically. How can i intercept this error message firing inside add() controller function? because if a message is fired, i would perform an action (and not simply show message) -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Handle validation rule message inside controller
Hi there, i've start to learn cake php yesterday, and i have a question. I've declared validation array inside my model class like: public $validate = array( 'username' = array( 'alphaNumeric' = array( 'rule' = 'alphaNumeric', 'required' = true, 'message' = 'username required' ), 'unique' = array( 'rule' = 'isUnique', 'required' = 'create', 'message' = 'Username already used' ) )); When i add a new record to my database by using add(), everithing works fine, and alert message are showed automatically. How can i intercept this error message firing inside add() controller function? because if a message is fired, i would perform an action (and not simply show message) -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: CakePHP-3 Plugins form validation messages and field values
Can you show the code you are using? Use gist.github.com to show your table class, controller and form code. On Thursday, February 19, 2015 at 7:19:22 AM UTC+1, Gaurav Kumar wrote: I have just created a CommentManager plugin. Created the comment form in post's view.ctp file and able to add the comments. But when the values of the comment form are wrong(email format is not proper or empty) then i am not getting the validation message in front of the respected fields and the values are not refilled. Also would like to know what would be the proper way to create a comment form inside a view file of posts. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
CakePHP-3 Plugins form validation messages and field values
I have just created a CommentManager plugin. Created the comment form in post's view.ctp file and able to add the comments. But when the values of the comment form are wrong(email format is not proper or empty) then i am not getting the validation message in front of the respected fields and the values are not refilled. Also would like to know what would be the proper way to create a comment form inside a view file of posts. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
[3.0] Validation, how to replace beforeValidate
Hi Until beforeValidate has been removed i kept logic like this in beforeValidate public function beforeValidate(Event $event, Entity $entity) { if( $entity-isNew() ) { $businessType = $entity-customer-businessType; if( $businessType == BusinessType::BUSINESS_TYPE_PERSON ) $entity-b2_type = B2Type::TYPE_B2C; elseif( $businessType == BusinessType::BUSINESS_TYPE_COMPANY ) $entity-b2_type = B2Type::TYPE_B2B; if( $entity-dirty('products') ) { $entity-premium_type = $entity-products[0]-premium_type; $entity-premium_value = $entity-products[0]-premium_value; } I ve got a case where i just need to validate entity (i need deep named validations) and set errors (at entity level) - without saving. Since there is no $table-validate($entity) anymore, how can i achieve it? How should my controller look like ?. Do i have to completely rewrite all the logic now? -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
cakephp the rule validation function run twice
whene i use this code it's repeat the function isExif_imagetype 'ProfileImage' = array( 'rule' = 'isExif_imagetype', // ou bien : array('nomRegle', 'parametre1', 'parametre2' ...) 'message'= 'Votre message d\'erreur' ), , but whene i add 'on' = 'create', it's does't repeat. and for example whene i debug i got twice message. how to make it's run without repeating ?? -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: cakePHP 3.0-RC1, turning off HTML5 browser validation globally on user side ???
Hi Mark ! OK, I have burned up enough time up on this. It is not clear to me whether I am dealing with a plugin or a helper. I did read up on Configure:: though, and that knowledge will be useful. I got as far as tracing entry to your FormHelper, followed by entry to the cakePHP FormHelper, but the functions within your FormHelper never get called. Examination of your code suggests that the cakePHP helper should be calling functions within your helper ??? The FormConfig.novalidate value is visible globally though. I have been unsuccessful in finding examples of similar installations and I have not seen any examples that extend native cakePHP code as yours seems to do in the documentation. But the learning experience has been useful. Regards Lorne On Friday, January 9, 2015 at 7:18:01 PM UTC-5, Lorne Dudley wrote: OK, I see this in your FormHelper.php version #L44 use Cake\View\Helper\FormHelper as CakeFormHelper; class FormHelper extends CakeFormHelper So to answer my last question, it would appear that your FormHelper adds the ability to inspect the novalidate option. Now I have to determine how to invoke your FormHelper. Regards Lorne On Friday, January 9, 2015 at 5:39:29 PM UTC-5, Lorne Dudley wrote: OK Mark ! I am into the Configuration documentation and looking at bootstrap.php now. I will attempt to get this loaded by myself. Can you answer two questions though ? ( guess that is really three :-) ) Should I focus on your #L44 version ? If I get this working, does your FormHelper.php completely replace the function in /vendor/cakephp/cakephp/src/View/Helper/FormHelper.php ? Regards Lorne On Friday, January 9, 2015 at 2:45:21 PM UTC-5, euromark wrote: Lorne you can actually set a config on the user side when using sth similar I did in my plugin (since 2.x). You can either use my Tools plugin directly, or copy and paste the relevant part: https://github.com/dereuromark/cakephp-tools/blob/cake3/src/View/Helper/FormHelper.php#L16 https://github.com/dereuromark/cakephp-tools/blob/cake3/src/View/Helper/FormHelper.php#L44 You can disable it globally or locally via Configure::write('FormConfig.novalidate', 'true'); then :) No need to mess with any templates in this case. Mark Am Freitag, 9. Januar 2015 17:50:54 UTC+1 schrieb Lorne Dudley: Hello José Thanks for the reference. If I interpret the manual properly, I think it wants me to store the custom widget under the /vendor/cakephp/cakephp/src/View/Widget/ directory structure ? If this is correct then would the custom widget be wiped out every time I did a composer update ? I found this to be the case when I had managed to default the form submission to formnovalidate using a different technique under the /vendor structure. In the FormHelper.php function widget() I added the line unset($data['required']); // turn off HTML5 browser validation after the line unset($data['secure']); This was replace to the original (or updated) version when I did the composer update. What I was really hoping for was perhaps a method of setting a /config option on the user side. Regards Lorne On Thursday, January 8, 2015 at 11:28:48 PM UTC-5, Lorne Dudley wrote: I have finally found the method to turn off browser validation so that cakePHP can take control of the validation instead. This works for me. ?= $this-Form-button(__('Submit'), array('formnovalidate' = true)) ? Rather than do this for every Form, is there any way to set this option for Forms globally on the user side ? Regards -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: cakePHP 3.0-RC1, turning off HTML5 browser validation globally on user side ???
OK Mark ! I am into the Configuration documentation and looking at bootstrap.php now. I will attempt to get this loaded by myself. Can you answer two questions though ? ( guess that is really three :-) ) Should I focus on your #L44 version ? If I get this working, does your FormHelper.php completely replace the function in /vendor/cakephp/cakephp/src/View/Helper/FormHelper.php ? Regards Lorne On Friday, January 9, 2015 at 2:45:21 PM UTC-5, euromark wrote: Lorne you can actually set a config on the user side when using sth similar I did in my plugin (since 2.x). You can either use my Tools plugin directly, or copy and paste the relevant part: https://github.com/dereuromark/cakephp-tools/blob/cake3/src/View/Helper/FormHelper.php#L16 https://github.com/dereuromark/cakephp-tools/blob/cake3/src/View/Helper/FormHelper.php#L44 You can disable it globally or locally via Configure::write('FormConfig.novalidate', 'true'); then :) No need to mess with any templates in this case. Mark Am Freitag, 9. Januar 2015 17:50:54 UTC+1 schrieb Lorne Dudley: Hello José Thanks for the reference. If I interpret the manual properly, I think it wants me to store the custom widget under the /vendor/cakephp/cakephp/src/View/Widget/ directory structure ? If this is correct then would the custom widget be wiped out every time I did a composer update ? I found this to be the case when I had managed to default the form submission to formnovalidate using a different technique under the /vendor structure. In the FormHelper.php function widget() I added the line unset($data['required']); // turn off HTML5 browser validation after the line unset($data['secure']); This was replace to the original (or updated) version when I did the composer update. What I was really hoping for was perhaps a method of setting a /config option on the user side. Regards Lorne On Thursday, January 8, 2015 at 11:28:48 PM UTC-5, Lorne Dudley wrote: I have finally found the method to turn off browser validation so that cakePHP can take control of the validation instead. This works for me. ?= $this-Form-button(__('Submit'), array('formnovalidate' = true)) ? Rather than do this for every Form, is there any way to set this option for Forms globally on the user side ? Regards -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: cakePHP 3.0-RC1, turning off HTML5 browser validation globally on user side ???
OK, I see this in your FormHelper.php version #L44 use Cake\View\Helper\FormHelper as CakeFormHelper; class FormHelper extends CakeFormHelper So to answer my last question, it would appear that your FormHelper adds the ability to inspect the novalidate option. Now I have to determine how to invoke your FormHelper. Regards Lorne On Friday, January 9, 2015 at 5:39:29 PM UTC-5, Lorne Dudley wrote: OK Mark ! I am into the Configuration documentation and looking at bootstrap.php now. I will attempt to get this loaded by myself. Can you answer two questions though ? ( guess that is really three :-) ) Should I focus on your #L44 version ? If I get this working, does your FormHelper.php completely replace the function in /vendor/cakephp/cakephp/src/View/Helper/FormHelper.php ? Regards Lorne On Friday, January 9, 2015 at 2:45:21 PM UTC-5, euromark wrote: Lorne you can actually set a config on the user side when using sth similar I did in my plugin (since 2.x). You can either use my Tools plugin directly, or copy and paste the relevant part: https://github.com/dereuromark/cakephp-tools/blob/cake3/src/View/Helper/FormHelper.php#L16 https://github.com/dereuromark/cakephp-tools/blob/cake3/src/View/Helper/FormHelper.php#L44 You can disable it globally or locally via Configure::write('FormConfig.novalidate', 'true'); then :) No need to mess with any templates in this case. Mark Am Freitag, 9. Januar 2015 17:50:54 UTC+1 schrieb Lorne Dudley: Hello José Thanks for the reference. If I interpret the manual properly, I think it wants me to store the custom widget under the /vendor/cakephp/cakephp/src/View/Widget/ directory structure ? If this is correct then would the custom widget be wiped out every time I did a composer update ? I found this to be the case when I had managed to default the form submission to formnovalidate using a different technique under the /vendor structure. In the FormHelper.php function widget() I added the line unset($data['required']); // turn off HTML5 browser validation after the line unset($data['secure']); This was replace to the original (or updated) version when I did the composer update. What I was really hoping for was perhaps a method of setting a /config option on the user side. Regards Lorne On Thursday, January 8, 2015 at 11:28:48 PM UTC-5, Lorne Dudley wrote: I have finally found the method to turn off browser validation so that cakePHP can take control of the validation instead. This works for me. ?= $this-Form-button(__('Submit'), array('formnovalidate' = true)) ? Rather than do this for every Form, is there any way to set this option for Forms globally on the user side ? Regards -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: cakePHP 3.0-RC1, turning off HTML5 browser validation globally on user side ???
In cake 3 you can override the ButtonWidget and make that a default property of your buttons: http://book.cakephp.org/3.0/en/views/helpers/form.html#adding-custom-widgets You can just extend the one in the core (Cake\View\Widget\ButtonWidget) and append your custom options. On Friday, January 9, 2015 at 5:28:48 AM UTC+1, Lorne Dudley wrote: I have finally found the method to turn off browser validation so that cakePHP can take control of the validation instead. This works for me. ?= $this-Form-button(__('Submit'), array('formnovalidate' = true)) ? Rather than do this for every Form, is there any way to set this option for Forms globally on the user side ? Regards -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: cakePHP 3.0-RC1, turning off HTML5 browser validation globally on user side ???
Hello José Thanks for the reference. If I interpret the manual properly, I think it wants me to store the custom widget under the /vendor/cakephp/cakephp/src/View/Widget/ directory structure ? If this is correct then would the custom widget be wiped out every time I did a composer update ? I found this to be the case when I had managed to default the form submission to formnovalidate using a different technique under the /vendor structure. In the FormHelper.php function widget() I added the line unset($data['required']); // turn off HTML5 browser validation after the line unset($data['secure']); This was replace to the original (or updated) version when I did the composer update. What I was really hoping for was perhaps a method of setting a /config option on the user side. Regards Lorne On Thursday, January 8, 2015 at 11:28:48 PM UTC-5, Lorne Dudley wrote: I have finally found the method to turn off browser validation so that cakePHP can take control of the validation instead. This works for me. ?= $this-Form-button(__('Submit'), array('formnovalidate' = true)) ? Rather than do this for every Form, is there any way to set this option for Forms globally on the user side ? Regards -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: cakePHP 3.0-RC1, turning off HTML5 browser validation globally on user side ???
Lorne you can actually set a config on the user side when using sth similar I did in my plugin (since 2.x). You can either use my Tools plugin directly, or copy and paste the relevant part: https://github.com/dereuromark/cakephp-tools/blob/cake3/src/View/Helper/FormHelper.php#L16 https://github.com/dereuromark/cakephp-tools/blob/cake3/src/View/Helper/FormHelper.php#L44 You can disable it globally or locally via Configure::write('FormConfig.novalidate', 'true'); then :) No need to mess with any templates in this case. Mark Am Freitag, 9. Januar 2015 17:50:54 UTC+1 schrieb Lorne Dudley: Hello José Thanks for the reference. If I interpret the manual properly, I think it wants me to store the custom widget under the /vendor/cakephp/cakephp/src/View/Widget/ directory structure ? If this is correct then would the custom widget be wiped out every time I did a composer update ? I found this to be the case when I had managed to default the form submission to formnovalidate using a different technique under the /vendor structure. In the FormHelper.php function widget() I added the line unset($data['required']); // turn off HTML5 browser validation after the line unset($data['secure']); This was replace to the original (or updated) version when I did the composer update. What I was really hoping for was perhaps a method of setting a /config option on the user side. Regards Lorne On Thursday, January 8, 2015 at 11:28:48 PM UTC-5, Lorne Dudley wrote: I have finally found the method to turn off browser validation so that cakePHP can take control of the validation instead. This works for me. ?= $this-Form-button(__('Submit'), array('formnovalidate' = true)) ? Rather than do this for every Form, is there any way to set this option for Forms globally on the user side ? Regards -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: cakePHP 3.0-RC1, turning off HTML5 browser validation globally on user side ???
Never mind my solution then. It would need a little bit more knowledge of how CakePHP works. Even though it would exactly do what you want to. Try to read the wiki documentation and study the plugin code more, that might clarify it a bit. But note that this is an extended FormHelper, not the core one. Am Freitag, 9. Januar 2015 22:11:03 UTC+1 schrieb Lorne Dudley: Hello Mark ! Thanks for this. At first glance I do not see any difference between the #L16 and the #L44 version. I have loaded the #L44 version as /src/View/Helper/FornHelper.php. I do not know where to place Configure::write('FormConfig.novalidate', 'true'); I'm a cakePHP novice. Can you give me more detailed instruction ? What I would like to achieve is to have the novalidate active for any forms that might appear in the application. How and where do I set up Configure::write('FormConfig.novalidate', 'true'); so that it is called only on start-up ? Regards Lorne On Friday, January 9, 2015 at 2:45:21 PM UTC-5, euromark wrote: Lorne you can actually set a config on the user side when using sth similar I did in my plugin (since 2.x). You can either use my Tools plugin directly, or copy and paste the relevant part: https://github.com/dereuromark/cakephp-tools/blob/cake3/src/View/Helper/FormHelper.php#L16 https://github.com/dereuromark/cakephp-tools/blob/cake3/src/View/Helper/FormHelper.php#L44 You can disable it globally or locally via Configure::write('FormConfig.novalidate', 'true'); then :) No need to mess with any templates in this case. Mark Am Freitag, 9. Januar 2015 17:50:54 UTC+1 schrieb Lorne Dudley: Hello José Thanks for the reference. If I interpret the manual properly, I think it wants me to store the custom widget under the /vendor/cakephp/cakephp/src/View/Widget/ directory structure ? If this is correct then would the custom widget be wiped out every time I did a composer update ? I found this to be the case when I had managed to default the form submission to formnovalidate using a different technique under the /vendor structure. In the FormHelper.php function widget() I added the line unset($data['required']); // turn off HTML5 browser validation after the line unset($data['secure']); This was replace to the original (or updated) version when I did the composer update. What I was really hoping for was perhaps a method of setting a /config option on the user side. Regards Lorne On Thursday, January 8, 2015 at 11:28:48 PM UTC-5, Lorne Dudley wrote: I have finally found the method to turn off browser validation so that cakePHP can take control of the validation instead. This works for me. ?= $this-Form-button(__('Submit'), array('formnovalidate' = true)) ? Rather than do this for every Form, is there any way to set this option for Forms globally on the user side ? Regards -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: cakePHP 3.0-RC1, turning off HTML5 browser validation globally on user side ???
Hello Mark ! Thanks for this. At first glance I do not see any difference between the #L16 and the #L44 version. I have loaded the #L44 version as /src/View/Helper/FornHelper.php. I do not know where to place Configure::write('FormConfig.novalidate', 'true'); I'm a cakePHP novice. Can you give me more detailed instruction ? What I would like to achieve is to have the novalidate active for any forms that might appear in the application. How and where do I set up Configure::write('FormConfig.novalidate', 'true' ); so that it is called only on start-up ? Regards Lorne On Friday, January 9, 2015 at 2:45:21 PM UTC-5, euromark wrote: Lorne you can actually set a config on the user side when using sth similar I did in my plugin (since 2.x). You can either use my Tools plugin directly, or copy and paste the relevant part: https://github.com/dereuromark/cakephp-tools/blob/cake3/src/View/Helper/FormHelper.php#L16 https://github.com/dereuromark/cakephp-tools/blob/cake3/src/View/Helper/FormHelper.php#L44 You can disable it globally or locally via Configure::write('FormConfig.novalidate', 'true'); then :) No need to mess with any templates in this case. Mark Am Freitag, 9. Januar 2015 17:50:54 UTC+1 schrieb Lorne Dudley: Hello José Thanks for the reference. If I interpret the manual properly, I think it wants me to store the custom widget under the /vendor/cakephp/cakephp/src/View/Widget/ directory structure ? If this is correct then would the custom widget be wiped out every time I did a composer update ? I found this to be the case when I had managed to default the form submission to formnovalidate using a different technique under the /vendor structure. In the FormHelper.php function widget() I added the line unset($data['required']); // turn off HTML5 browser validation after the line unset($data['secure']); This was replace to the original (or updated) version when I did the composer update. What I was really hoping for was perhaps a method of setting a /config option on the user side. Regards Lorne On Thursday, January 8, 2015 at 11:28:48 PM UTC-5, Lorne Dudley wrote: I have finally found the method to turn off browser validation so that cakePHP can take control of the validation instead. This works for me. ?= $this-Form-button(__('Submit'), array('formnovalidate' = true)) ? Rather than do this for every Form, is there any way to set this option for Forms globally on the user side ? Regards -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: Validation error on baked date field , CakePHP 3
Answer is here: https://github.com/cakephp/cakephp/issues/5611 Am Donnerstag, 8. Januar 2015 21:54:34 UTC+1 schrieb Lorne Dudley: I have a baked cakePHP-3.0.0 page which has a field defined as 'date_of_birth date DEFAULT NULL' in TABLE users. When I click the Submit for the add function I get Warning (2): preg_match() expects parameter 2 to be string, array given [CORE\src\Validation\Validation.php, line 763] Code Context protected static function _check($check, $regex) { if (is_string($regex) preg_match($regex, $check)) { $check = [ 'year' = '2014', 'month' = '01', 'day' = '01' ] $regex = '%^(?:(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))([- /.])(?:0?2\1(?:29)))|(?:(?:(?:1[6-9]|[2-9]\d)?\d{2})([- /.])(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]$%' Any suggestion on how to fix ? Regards The stack trace is preg_match - [internal], line ?? Cake\Validation\Validation::_check() - CORE\src\Validation\Validation.php, line 763 Cake\Validation\Validation::date() - CORE\src\Validation\Validation.php, line 346 Cake\Validation\RulesProvider::__call() - CORE\src\Validation\RulesProvider.php, line 53 Cake\Validation\RulesProvider::date() - CORE\src\Validation\ValidationRule.php, line 138 Cake\Validation\ValidationRule::process() - CORE\src\Validation\ValidationRule.php, line 138 Cake\Validation\Validator::_processRules() - CORE\src\Validation\Validator.php, line 554 Cake\Validation\Validator::errors() - CORE\src\Validation\Validator.php, line 128 Cake\ORM\Marshaller::_validate() - CORE\src\ORM\Marshaller.php, line 185 Cake\ORM\Marshaller::merge() - CORE\src\ORM\Marshaller.php, line 341 Cake\ORM\Table::patchEntity() - CORE\src\ORM\Table.php, line 1899 App\Controller\UsersController::add() - APP/Controller\UsersController.php, line 48 Cake\Controller\Controller::invokeAction() - CORE\src\Controller\Controller.php, line 406 Cake\Routing\Dispatcher::_invoke() - CORE\src\Routing\Dispatcher.php, line 114 Cake\Routing\Dispatcher::dispatch() - CORE\src\Routing\Dispatcher.php, line 87 -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
cakePHP 3.0-RC1, turning off HTML5 browser validation globally on user side ???
I have finally found the method to turn off browser validation so that cakePHP can take control of the validation instead. This works for me. ?= $this-Form-button(__('Submit'), array('formnovalidate' = true)) ? Rather than do this for every Form, is there any way to set this option for Forms globally on the user side ? Regards -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Validation error on baked date field , CakePHP 3
I have a baked cakePHP-3.0.0 page which has a field defined as 'date_of_birth date DEFAULT NULL' in TABLE users. When I click the Submit for the add function I get Warning (2): preg_match() expects parameter 2 to be string, array given [CORE\src\Validation\Validation.php, line 763] Code Context protected static function _check($check, $regex) { if (is_string($regex) preg_match($regex, $check)) { $check = [ 'year' = '2014', 'month' = '01', 'day' = '01' ] $regex = '%^(?:(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))([- /.])(?:0?2\1(?:29)))|(?:(?:(?:1[6-9]|[2-9]\d)?\d{2})([- /.])(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]$%' Any suggestion on how to fix ? Regards The stack trace is preg_match - [internal], line ?? Cake\Validation\Validation::_check() - CORE\src\Validation\Validation.php, line 763 Cake\Validation\Validation::date() - CORE\src\Validation\Validation.php, line 346 Cake\Validation\RulesProvider::__call() - CORE\src\Validation\RulesProvider.php, line 53 Cake\Validation\RulesProvider::date() - CORE\src\Validation\ValidationRule.php, line 138 Cake\Validation\ValidationRule::process() - CORE\src\Validation\ValidationRule.php, line 138 Cake\Validation\Validator::_processRules() - CORE\src\Validation\Validator.php, line 554 Cake\Validation\Validator::errors() - CORE\src\Validation\Validator.php, line 128 Cake\ORM\Marshaller::_validate() - CORE\src\ORM\Marshaller.php, line 185 Cake\ORM\Marshaller::merge() - CORE\src\ORM\Marshaller.php, line 341 Cake\ORM\Table::patchEntity() - CORE\src\ORM\Table.php, line 1899 App\Controller\UsersController::add() - APP/Controller\UsersController.php, line 48 Cake\Controller\Controller::invokeAction() - CORE\src\Controller\Controller.php, line 406 Cake\Routing\Dispatcher::_invoke() - CORE\src\Routing\Dispatcher.php, line 114 Cake\Routing\Dispatcher::dispatch() - CORE\src\Routing\Dispatcher.php, line 87 -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Validation error on date field , CakePHP 3
/** * Actions Model */ class ActionsTable extends Table { public function validationDefault(Validator $validator) { $validator-add('close_date', 'valid', ['rule' = 'date']); } .. data passed on save for close_date field : [ 'year' = '2015', 'month' = '01','day' = '02'] error : Warning (2): preg_match() expects parameter 2 to be string, array given [CORE/src/Validation/Validation.php, line 763] protected static function _check($check, $regex) { if (is_string($regex) preg_match($regex, $check)) { ... parameter values ... $regex = '%^(?:(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))([- /.])(?:0?2\1(?:29)))|(?:(?:(?:1[6-9]|[2-9]\d)?\d{2})([- /.])(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]$%' $check = [ 'year' = '2015', 'month' = '01', 'day' = '02' ] - expecting String for $check parameter ? Working two days ago, but after todays update this error apeared .. is this a recent bug or something is missing ? -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Custom Validation (CakePHP 3.0)
Hi all, I'm trying to enforce password definition through Model Validation rule. I would like to include a RegExp validation. Is there any simple way to do it? Should I create a validation function? Checking the sources look like there is no need, however I haven't been able to perform a validation. Any help will be appreciated. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
How to create a provider of validation
Hello, I try to create my own validation, But I have an error of provider because I do not know what to put. //vendor/maitrepylos/Validation.php ?php namespace Maitrepylos; use Cake\Datasource\ConnectionManager; class Validation extends \Cake\Validation\Validation { public static function uniqueIdentifiant($check){ $pdo = ConnectionManager::get('default'); $sql = 'SELECT count(*) as compteur FROM catalogue WHERE t_identifiant = ?'; $r = $pdo-prepare($sql); $r-execute([$check]); $d = $r-fetch(\PDO::FETCH_OBJ); if($d-compteur 0){ return false; } return true; } } //App/Model/Validation/ProjectValidation.php ?php namespace App\Model\Validation; use Cake\Datasource\ConnectionManager; use Cake\Validation\Validator; class ProjectValidation { public $validator = null; public function __construct() { $this-validator = new Validator(); } public function newFiche(){ $this-validator-requirePresence('t_titre', true) -notEmpty('t_titre', 'Le nom de la fiche ne peut être absente') -notEmpty('d_date_creation','La date ne peut être vide') -add('d_date_creation',[ 'checkDate'=[ 'rule'=['date','dmy'], 'message' = 'La date doit-être au format d/m/Y' ] ]) -notEmpty('t_identifiant', 'L\'identifiant ne peut être vide') -add('t_identifiant',[ 'single' = [ 'rule' = ['uniqueIdentifiant'], 'provider'='??', //I don't know 'message' = 'test unique' ] ]); return $this-validator; } } Thank you for your help -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
How to create a provider of validation
well, i would say that at least you need to include your class by replacing use Cake\Validation\Validate by use Maitrepylos\Validation. then maybe you need to bind a provider as explained in the doc http://book.cakephp.org/3.0/en/core-libraries/validation.html#adding-validation-providers but I didn't use it yet. -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: How to create a provider of validation
Firstly, your Validation Provider is better situated in your src/ directory (I personally use src/Model/Validation/Provider), so the filename will be src/Model/Validation/Provider/Validation.php and the FQN will be App\Model\Validation\Provider\Validation.php Then in your ProjectValidation file, you would add: $this-validator-provider('myProvider', 'App\Model\Validation\Provider\Validation'); into your constructor. Your '' would then simply be 'myProvider' As for your actual validation rule, please try not to directly use SQL. Your query is better written as: $count = TableRegistry::get('Catalogue') -find() -where(['t_identifiant' = $check]) -count(); On Monday, 1 December 2014 17:02:46 UTC+2, Ernaelsten Gérard wrote: Hello, I try to create my own validation, But I have an error of provider because I do not know what to put. //vendor/maitrepylos/Validation.php ?php namespace Maitrepylos; use Cake\Datasource\ConnectionManager; class Validation extends \Cake\Validation\Validation { public static function uniqueIdentifiant($check){ $pdo = ConnectionManager::get('default'); $sql = 'SELECT count(*) as compteur FROM catalogue WHERE t_identifiant = ?'; $r = $pdo-prepare($sql); $r-execute([$check]); $d = $r-fetch(\PDO::FETCH_OBJ); if($d-compteur 0){ return false; } return true; } } //App/Model/Validation/ProjectValidation.php ?php namespace App\Model\Validation; use Cake\Datasource\ConnectionManager; use Cake\Validation\Validator; class ProjectValidation { public $validator = null; public function __construct() { $this-validator = new Validator(); } public function newFiche(){ $this-validator-requirePresence('t_titre', true) -notEmpty('t_titre', 'Le nom de la fiche ne peut être absente') -notEmpty('d_date_creation','La date ne peut être vide') -add('d_date_creation',[ 'checkDate'=[ 'rule'=['date','dmy'], 'message' = 'La date doit-être au format d/m/Y' ] ]) -notEmpty('t_identifiant', 'L\'identifiant ne peut être vide') -add('t_identifiant',[ 'single' = [ 'rule' = ['uniqueIdentifiant'], 'provider'='??', //I don't know 'message' = 'test unique' ] ]); return $this-validator; } } Thank you for your help -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: cake3 validation in controller
Create a table / model object with a schema but no table and use it as usual. The controller should be tiny and models fat. http://i.stack.imgur.com/UrtaH.png On Thursday, November 13, 2014 1:58:42 PM UTC+1, cesar calvo wrote: It is possible show in a form the error messages with no model associated? Obviously using the Form helper. I see validating-data http://book.cakephp.org/3.0/en/core-libraries/validation.html#validating-data, but I need some guidance about the feasibility automatically display errors like when work with a model //view ?= $this-Form-create(), $this-Form-input('name', ['label' = __('Name')]), $this-Form-input('email', ['label' = __('Email')]), $this-Form-input('subject', ['label' = __('Subject')]), $this-Form-input('message', ['label' = __('Message'), 'type' = 'textarea', 'rows' = '3']), $this-Form-button(__('Submit')), $this-Form-end() ? //controller public function contact() { if ($this-request-is('post')) { $validator = new Validator(); $validator -validatePresence('email') -notEmpty('email', __('This field is required.')) -add('email', 'valid', ['rule' = 'email', 'message' = __('This field requires a valid email address.')]) -validatePresence('name') -notEmpty('name', __('This field is required.')) -validatePresence('subject') -notEmpty('subject', __('This field is required.')) -validatePresence('message') -notEmpty('message', __('This field is required.')) ; $errors = $validator-errors($this-request-data); if (empty($errors)) { $this-Flash-success(__('Your data has been sent succesfully.')); } else { $this-Flash-error(__('Unable to sent your data.')); } } } best regards -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: cake3 validation in controller
How do link the schema with Table Object? You can provide an example? I have an action contact in PagesController which processes the contact form: //model namespace App\Model\Table; use Cake\Database\Schema; use Cake\ORM\Table; use Cake\Validation\Validator; class PagesTable extends Table { public function initialize(array $config) { $t = new Schema\Table('pages'); $t-addColumn('email', 'string') -addColumn('name', 'string') -addColumn('subject', 'string') -addColumn('content', 'string'); } } regards --cesar El viernes, 14 de noviembre de 2014 09:32:15 UTC-2, Florian Krämer escribió: Create a table / model object with a schema but no table and use it as usual. The controller should be tiny and models fat. http://i.stack.imgur.com/UrtaH.png On Thursday, November 13, 2014 1:58:42 PM UTC+1, cesar calvo wrote: It is possible show in a form the error messages with no model associated? Obviously using the Form helper. I see validating-data http://book.cakephp.org/3.0/en/core-libraries/validation.html#validating-data, but I need some guidance about the feasibility automatically display errors like when work with a model //view ?= $this-Form-create(), $this-Form-input('name', ['label' = __('Name')]), $this-Form-input('email', ['label' = __('Email')]), $this-Form-input('subject', ['label' = __('Subject')]), $this-Form-input('message', ['label' = __('Message'), 'type' = 'textarea', 'rows' = '3']), $this-Form-button(__('Submit')), $this-Form-end() ? //controller public function contact() { if ($this-request-is('post')) { $validator = new Validator(); $validator -validatePresence('email') -notEmpty('email', __('This field is required.')) -add('email', 'valid', ['rule' = 'email', 'message' = __('This field requires a valid email address.')]) -validatePresence('name') -notEmpty('name', __('This field is required.')) -validatePresence('subject') -notEmpty('subject', __('This field is required.')) -validatePresence('message') -notEmpty('message', __('This field is required.')) ; $errors = $validator-errors($this-request-data); if (empty($errors)) { $this-Flash-success(__('Your data has been sent succesfully.')); } else { $this-Flash-error(__('Unable to sent your data.')); } } } best regards -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
cake3 validation in controller
It is possible show in a form the error messages with no model associated? Obviously using the Form helper. I see validating-data http://book.cakephp.org/3.0/en/core-libraries/validation.html#validating-data, but I need some guidance about the feasibility automatically display errors like when work with a model //view ?= $this-Form-create(), $this-Form-input('name', ['label' = __('Name')]), $this-Form-input('email', ['label' = __('Email')]), $this-Form-input('subject', ['label' = __('Subject')]), $this-Form-input('message', ['label' = __('Message'), 'type' = 'textarea', 'rows' = '3']), $this-Form-button(__('Submit')), $this-Form-end() ? //controller public function contact() { if ($this-request-is('post')) { $validator = new Validator(); $validator -validatePresence('email') -notEmpty('email', __('This field is required.')) -add('email', 'valid', ['rule' = 'email', 'message' = __('This field requires a valid email address.')]) -validatePresence('name') -notEmpty('name', __('This field is required.')) -validatePresence('subject') -notEmpty('subject', __('This field is required.')) -validatePresence('message') -notEmpty('message', __('This field is required.')) ; $errors = $validator-errors($this-request-data); if (empty($errors)) { $this-Flash-success(__('Your data has been sent succesfully.')); } else { $this-Flash-error(__('Unable to sent your data.')); } } } best regards -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: cake3 validation rule not performed
What do you mean with the validator ignores? What is the data that you are trying to validate and what is the result? On Tuesday, November 11, 2014 5:03:19 PM UTC+1, cesar calvo wrote: Hi people, I have this validation rules in UsersTable. The validator ignores the -add(password, lenght) sentence. The issue is when I try to create or update a record. Best regards --cesar public function validationDefault(Validator $validator) { return $validator -validatePresence('username', 'create') -notEmpty('username', __('This field is required.')) -add('username', [ 'valid' = [ 'rule' = 'email', 'message' = __('This field requires a valid email address.') ], 'unique' = [ 'rule' = 'validateUnique', 'provider' = 'table', 'message' = __('This field must be unique.') ] ]) -validatePresence('password', 'create') -notEmpty('password', __('This field is required.')) -add('password', [ 'length' = [ 'rule' = ['minLength', 8], 'message' = __('Password must be at least {0} characters long.', 8), ] ]) ; } -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: cake3 validation rule not performed
The login form is very similar to that used in the blog tutorial. I can see that there is no link to the LOGIN form with associated model. ADD and EDIT actions perform validation over username but not over password field. With ignore I mean that the model validation rules do not apply. public function login() { if ($this-request-is('post')) { $user = $this-Auth-identify(); if ($user) { $this-Auth-setUser($user); return $this-redirect($this-Auth-redirectUrl()); } $this-Flash-error(__('Invalid username or password.')); } } public function add() { $user = $this-Users-newEntity($this-request-data); if ($this-request-is('post')) { if ($this-Users-save($user)) { //mail connection... $this-Flash-success(__('A message has been sent to your email address.')); return $this-redirect(['action' = 'login']); } $this-Flash-error(__('Unable to save your data.')); } $this-set(compact('user')); } public function edit() { $user = $this-Users-get($this-Auth-user('id')); if ($this-request-is(['post', 'put'])) { $this-Users-patchEntity($user, ['password' = $this-request-data('password')]); if ($this-Users-save($user)) { $this-Flash-success(__('Your data has been updated.')); return $this-redirect(['action' = 'index']); } $this-Flash-error(__('Unable to update your data.')); } $this-set(compact('user')); } //login.ctp ?= $this-Form-create(), $this-Form-input('username', ['label' = __('Username'), 'required' = true, 'placeholder' = __('E-mail address'),]), $this-Form-input('password', ['label' = __('Password'), 'required' = true, 'value' = false]), $this-Form-button(__('Submit')), $this-Form-end() ? //add.ctp ?= $this-Form-create($user), $this-Form-input('username', ['label' = __('Username'), 'placeholder' = __('E-mail address')]), $this-Form-input('password', ['label' = __('Password'), 'value' = false]), $this-Form-button(__('Submit')), $this-Form-end() ? //edit.ctp ?= $this-Form-create($user), $this-Form-input('username', ['label' = __('Username'), 'disabled' = true]), $this-Form-input('password', ['label' = __('Password'), 'value' = false]), $this-Form-button(__('Submit')), $this-Form-end(); ? El miércoles, 12 de noviembre de 2014 07:30:41 UTC-2, José Lorenzo escribió: What do you mean with the validator ignores? What is the data that you are trying to validate and what is the result? On Tuesday, November 11, 2014 5:03:19 PM UTC+1, cesar calvo wrote: Hi people, I have this validation rules in UsersTable. The validator ignores the -add(password, lenght) sentence. The issue is when I try to create or update a record. Best regards --cesar public function validationDefault(Validator $validator) { return $validator -validatePresence('username', 'create') -notEmpty('username', __('This field is required.')) -add('username', [ 'valid' = [ 'rule' = 'email', 'message' = __('This field requires a valid email address.') ], 'unique' = [ 'rule' = 'validateUnique', 'provider' = 'table', 'message' = __('This field must be unique.') ] ]) -validatePresence('password', 'create') -notEmpty('password', __('This field is required.')) -add('password', [ 'length' = [ 'rule' = ['minLength', 8], 'message' = __('Password must be at least {0} characters long.', 8), ] ]) ; } -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: cake3 validation rule not performed
If you have a _setPassword() function in your entity, that function will be called before validating the data. That means that the length of the password will be much larger than the original passed password. In those cases it is better to not validate using the table, but create a validator in the controller and validate the data that way. On Wednesday, November 12, 2014 12:27:22 PM UTC+1, cesar calvo wrote: The login form is very similar to that used in the blog tutorial. I can see that there is no link to the LOGIN form with associated model. ADD and EDIT actions perform validation over username but not over password field. With ignore I mean that the model validation rules do not apply. public function login() { if ($this-request-is('post')) { $user = $this-Auth-identify(); if ($user) { $this-Auth-setUser($user); return $this-redirect($this-Auth-redirectUrl()); } $this-Flash-error(__('Invalid username or password.')); } } public function add() { $user = $this-Users-newEntity($this-request-data); if ($this-request-is('post')) { if ($this-Users-save($user)) { //mail connection... $this-Flash-success(__('A message has been sent to your email address.')); return $this-redirect(['action' = 'login']); } $this-Flash-error(__('Unable to save your data.')); } $this-set(compact('user')); } public function edit() { $user = $this-Users-get($this-Auth-user('id')); if ($this-request-is(['post', 'put'])) { $this-Users-patchEntity($user, ['password' = $this-request-data('password')]); if ($this-Users-save($user)) { $this-Flash-success(__('Your data has been updated.')); return $this-redirect(['action' = 'index']); } $this-Flash-error(__('Unable to update your data.')); } $this-set(compact('user')); } //login.ctp ?= $this-Form-create(), $this-Form-input('username', ['label' = __('Username'), 'required' = true, 'placeholder' = __('E-mail address'),]), $this-Form-input('password', ['label' = __('Password'), 'required' = true, 'value' = false]), $this-Form-button(__('Submit')), $this-Form-end() ? //add.ctp ?= $this-Form-create($user), $this-Form-input('username', ['label' = __('Username'), 'placeholder' = __('E-mail address')]), $this-Form-input('password', ['label' = __('Password'), 'value' = false]), $this-Form-button(__('Submit')), $this-Form-end() ? //edit.ctp ?= $this-Form-create($user), $this-Form-input('username', ['label' = __('Username'), 'disabled' = true]), $this-Form-input('password', ['label' = __('Password'), 'value' = false]), $this-Form-button(__('Submit')), $this-Form-end(); ? El miércoles, 12 de noviembre de 2014 07:30:41 UTC-2, José Lorenzo escribió: What do you mean with the validator ignores? What is the data that you are trying to validate and what is the result? On Tuesday, November 11, 2014 5:03:19 PM UTC+1, cesar calvo wrote: Hi people, I have this validation rules in UsersTable. The validator ignores the -add(password, lenght) sentence. The issue is when I try to create or update a record. Best regards --cesar public function validationDefault(Validator $validator) { return $validator -validatePresence('username', 'create') -notEmpty('username', __('This field is required.')) -add('username', [ 'valid' = [ 'rule' = 'email', 'message' = __('This field requires a valid email address.') ], 'unique' = [ 'rule' = 'validateUnique', 'provider' = 'table', 'message' = __('This field must be unique.') ] ]) -validatePresence('password', 'create') -notEmpty('password', __('This field is required.')) -add('password', [ 'length' = [ 'rule' = ['minLength', 8], 'message' = __('Password must be at least {0} characters long.', 8), ] ]) ; } -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: cake3 validation rule not performed
Indeed I have _setPassword in the Entity. protected function _setPassword($password) { if (!empty($password)) { return (new DefaultPasswordHasher)-hash($password); } return $password; } El miércoles, 12 de noviembre de 2014 09:56:57 UTC-2, José Lorenzo escribió: If you have a _setPassword() function in your entity, that function will be called before validating the data. That means that the length of the password will be much larger than the original passed password. In those cases it is better to not validate using the table, but create a validator in the controller and validate the data that way. On Wednesday, November 12, 2014 12:27:22 PM UTC+1, cesar calvo wrote: The login form is very similar to that used in the blog tutorial. I can see that there is no link to the LOGIN form with associated model. ADD and EDIT actions perform validation over username but not over password field. With ignore I mean that the model validation rules do not apply. public function login() { if ($this-request-is('post')) { $user = $this-Auth-identify(); if ($user) { $this-Auth-setUser($user); return $this-redirect($this-Auth-redirectUrl()); } $this-Flash-error(__('Invalid username or password.')); } } public function add() { $user = $this-Users-newEntity($this-request-data); if ($this-request-is('post')) { if ($this-Users-save($user)) { //mail connection... $this-Flash-success(__('A message has been sent to your email address.')); return $this-redirect(['action' = 'login']); } $this-Flash-error(__('Unable to save your data.')); } $this-set(compact('user')); } public function edit() { $user = $this-Users-get($this-Auth-user('id')); if ($this-request-is(['post', 'put'])) { $this-Users-patchEntity($user, ['password' = $this-request-data('password')]); if ($this-Users-save($user)) { $this-Flash-success(__('Your data has been updated.')); return $this-redirect(['action' = 'index']); } $this-Flash-error(__('Unable to update your data.')); } $this-set(compact('user')); } //login.ctp ?= $this-Form-create(), $this-Form-input('username', ['label' = __('Username'), 'required' = true, 'placeholder' = __('E-mail address'),]), $this-Form-input('password', ['label' = __('Password'), 'required' = true, 'value' = false]), $this-Form-button(__('Submit')), $this-Form-end() ? //add.ctp ?= $this-Form-create($user), $this-Form-input('username', ['label' = __('Username'), 'placeholder' = __('E-mail address')]), $this-Form-input('password', ['label' = __('Password'), 'value' = false]), $this-Form-button(__('Submit')), $this-Form-end() ? //edit.ctp ?= $this-Form-create($user), $this-Form-input('username', ['label' = __('Username'), 'disabled' = true]), $this-Form-input('password', ['label' = __('Password'), 'value' = false]), $this-Form-button(__('Submit')), $this-Form-end(); ? El miércoles, 12 de noviembre de 2014 07:30:41 UTC-2, José Lorenzo escribió: What do you mean with the validator ignores? What is the data that you are trying to validate and what is the result? On Tuesday, November 11, 2014 5:03:19 PM UTC+1, cesar calvo wrote: Hi people, I have this validation rules in UsersTable. The validator ignores the -add(password, lenght) sentence. The issue is when I try to create or update a record. Best regards --cesar public function validationDefault(Validator $validator) { return $validator -validatePresence('username', 'create') -notEmpty('username', __('This field is required.')) -add('username', [ 'valid' = [ 'rule' = 'email', 'message' = __('This field requires a valid email address.') ], 'unique' = [ 'rule' = 'validateUnique', 'provider' = 'table', 'message' = __('This field must be unique.') ] ]) -validatePresence('password', 'create') -notEmpty('password', __('This field is required.')) -add('password', [ 'length' = [ 'rule' = ['minLength', 8], 'message' = __('Password must be at least {0} characters long.', 8), ] ]) ; } -- 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
Re: cake3 validation rule not performed
Then use a validator in the controller instead of validating how data looks like in the table. Validation in the table is meant for data integrity, not so much how data looks like. On Wednesday, November 12, 2014 1:06:25 PM UTC+1, cesar calvo wrote: Indeed I have _setPassword in the Entity. protected function _setPassword($password) { if (!empty($password)) { return (new DefaultPasswordHasher)-hash($password); } return $password; } El miércoles, 12 de noviembre de 2014 09:56:57 UTC-2, José Lorenzo escribió: If you have a _setPassword() function in your entity, that function will be called before validating the data. That means that the length of the password will be much larger than the original passed password. In those cases it is better to not validate using the table, but create a validator in the controller and validate the data that way. On Wednesday, November 12, 2014 12:27:22 PM UTC+1, cesar calvo wrote: The login form is very similar to that used in the blog tutorial. I can see that there is no link to the LOGIN form with associated model. ADD and EDIT actions perform validation over username but not over password field. With ignore I mean that the model validation rules do not apply. public function login() { if ($this-request-is('post')) { $user = $this-Auth-identify(); if ($user) { $this-Auth-setUser($user); return $this-redirect($this-Auth-redirectUrl()); } $this-Flash-error(__('Invalid username or password.')); } } public function add() { $user = $this-Users-newEntity($this-request-data); if ($this-request-is('post')) { if ($this-Users-save($user)) { //mail connection... $this-Flash-success(__('A message has been sent to your email address.')); return $this-redirect(['action' = 'login']); } $this-Flash-error(__('Unable to save your data.')); } $this-set(compact('user')); } public function edit() { $user = $this-Users-get($this-Auth-user('id')); if ($this-request-is(['post', 'put'])) { $this-Users-patchEntity($user, ['password' = $this-request-data('password')]); if ($this-Users-save($user)) { $this-Flash-success(__('Your data has been updated.')); return $this-redirect(['action' = 'index']); } $this-Flash-error(__('Unable to update your data.')); } $this-set(compact('user')); } //login.ctp ?= $this-Form-create(), $this-Form-input('username', ['label' = __('Username'), 'required' = true, 'placeholder' = __('E-mail address'),]), $this-Form-input('password', ['label' = __('Password'), 'required' = true, 'value' = false]), $this-Form-button(__('Submit')), $this-Form-end() ? //add.ctp ?= $this-Form-create($user), $this-Form-input('username', ['label' = __('Username'), 'placeholder' = __('E-mail address')]), $this-Form-input('password', ['label' = __('Password'), 'value' = false]), $this-Form-button(__('Submit')), $this-Form-end() ? //edit.ctp ?= $this-Form-create($user), $this-Form-input('username', ['label' = __('Username'), 'disabled' = true]), $this-Form-input('password', ['label' = __('Password'), 'value' = false]), $this-Form-button(__('Submit')), $this-Form-end(); ? El miércoles, 12 de noviembre de 2014 07:30:41 UTC-2, José Lorenzo escribió: What do you mean with the validator ignores? What is the data that you are trying to validate and what is the result? On Tuesday, November 11, 2014 5:03:19 PM UTC+1, cesar calvo wrote: Hi people, I have this validation rules in UsersTable. The validator ignores the -add(password, lenght) sentence. The issue is when I try to create or update a record. Best regards --cesar public function validationDefault(Validator $validator) { return $validator -validatePresence('username', 'create') -notEmpty('username', __('This field is required.')) -add('username', [ 'valid' = [ 'rule' = 'email', 'message' = __('This field requires a valid email address.') ], 'unique' = [ 'rule' = 'validateUnique', 'provider' = 'table', 'message' = __('This field must be unique.') ] ]) -validatePresence('password', 'create') -notEmpty('password', __('This field is required.')) -add('password', [ 'length' = [ 'rule' = ['minLength', 8], 'message' = __('Password must be at least {0
Re: cake3 validation rule not performed
Perhaps reusable validators http://book.cakephp.org/3.0/en/core-libraries/validation.html#creating-reusable-validators is one solution. Why username in login form not validates email rule? Presence and notEmpty are validates and show related message but email rule is not applied!. I think this only work on create or update context. //model return $validator -validatePresence('username') -notEmpty('username', __('This field is required.')) -add('username', [ 'valid' = [ 'rule' = 'email', 'message' = __('This field requires a valid email address.') ] ]); //controller if ($this-request-is('post')) { $user = $this-Auth-identify(); if ($user) { $this-Auth-setUser($user); return $this-redirect($this-Auth-redirectUrl()); } $this-Flash-error(__('Invalid username or password.')); } $this-set('user', $this-Users-newEntity()); //view $this-Form-create($user), $this-Form-input('username', ['label' = __('Username'), 'placeholder' = __('E-mail address'),]), $this-Form-input('password', ['label' = __('Password'), 'value' = false]), $this-Form-button(__('Submit')), $this-Form-end() El miércoles, 12 de noviembre de 2014 11:23:59 UTC-2, José Lorenzo escribió: Then use a validator in the controller instead of validating how data looks like in the table. Validation in the table is meant for data integrity, not so much how data looks like. On Wednesday, November 12, 2014 1:06:25 PM UTC+1, cesar calvo wrote: Indeed I have _setPassword in the Entity. protected function _setPassword($password) { if (!empty($password)) { return (new DefaultPasswordHasher)-hash($password); } return $password; } El miércoles, 12 de noviembre de 2014 09:56:57 UTC-2, José Lorenzo escribió: If you have a _setPassword() function in your entity, that function will be called before validating the data. That means that the length of the password will be much larger than the original passed password. In those cases it is better to not validate using the table, but create a validator in the controller and validate the data that way. On Wednesday, November 12, 2014 12:27:22 PM UTC+1, cesar calvo wrote: The login form is very similar to that used in the blog tutorial. I can see that there is no link to the LOGIN form with associated model. ADD and EDIT actions perform validation over username but not over password field. With ignore I mean that the model validation rules do not apply. public function login() { if ($this-request-is('post')) { $user = $this-Auth-identify(); if ($user) { $this-Auth-setUser($user); return $this-redirect($this-Auth-redirectUrl()); } $this-Flash-error(__('Invalid username or password.')); } } public function add() { $user = $this-Users-newEntity($this-request-data); if ($this-request-is('post')) { if ($this-Users-save($user)) { //mail connection... $this-Flash-success(__('A message has been sent to your email address.')); return $this-redirect(['action' = 'login']); } $this-Flash-error(__('Unable to save your data.')); } $this-set(compact('user')); } public function edit() { $user = $this-Users-get($this-Auth-user('id')); if ($this-request-is(['post', 'put'])) { $this-Users-patchEntity($user, ['password' = $this-request-data('password')]); if ($this-Users-save($user)) { $this-Flash-success(__('Your data has been updated.')); return $this-redirect(['action' = 'index']); } $this-Flash-error(__('Unable to update your data.')); } $this-set(compact('user')); } //login.ctp ?= $this-Form-create(), $this-Form-input('username', ['label' = __('Username'), 'required' = true, 'placeholder' = __('E-mail address'),]), $this-Form-input('password', ['label' = __('Password'), 'required' = true, 'value' = false]), $this-Form-button(__('Submit')), $this-Form-end() ? //add.ctp ?= $this-Form-create($user), $this-Form-input('username', ['label' = __('Username'), 'placeholder' = __('E-mail address')]), $this-Form-input('password', ['label' = __('Password'), 'value' = false]), $this-Form-button(__('Submit')), $this-Form-end() ? //edit.ctp ?= $this-Form-create($user), $this-Form-input('username', ['label' = __('Username'), 'disabled' = true]), $this-Form-input('password', ['label' = __('Password'), 'value' = false]), $this-Form-button(__('Submit')), $this-Form
Re: cake3 validation rule not performed
SOLVED!!!, Thanks José Lorenzo public function login() { if ($this-request-is('post')) { $user = $this-Users-newEntity($this-request-data); if ($this-Users-validate($user)) { $auth = $this-Auth-identify(); if ($auth) { $this-Auth-setUser($auth); return $this-redirect($this-Auth-redirectUrl()); } $this-Flash-error(__('Invalid username or password.')); } $this-Flash-error(__('Please correct the errors below.')); } $this-set(compact('user')); } El miércoles, 12 de noviembre de 2014 12:13:25 UTC-2, cesar calvo escribió: Perhaps reusable validators http://book.cakephp.org/3.0/en/core-libraries/validation.html#creating-reusable-validators is one solution. Why username in login form not validates email rule? Presence and notEmpty are validates and show related message but email rule is not applied!. I think this only work on create or update context. //model return $validator -validatePresence('username') -notEmpty('username', __('This field is required.')) -add('username', [ 'valid' = [ 'rule' = 'email', 'message' = __('This field requires a valid email address.') ] ]); //controller if ($this-request-is('post')) { $user = $this-Auth-identify(); if ($user) { $this-Auth-setUser($user); return $this-redirect($this-Auth-redirectUrl()); } $this-Flash-error(__('Invalid username or password.')); } $this-set('user', $this-Users-newEntity()); //view $this-Form-create($user), $this-Form-input('username', ['label' = __('Username'), 'placeholder' = __('E-mail address'),]), $this-Form-input('password', ['label' = __('Password'), 'value' = false]), $this-Form-button(__('Submit')), $this-Form-end() El miércoles, 12 de noviembre de 2014 11:23:59 UTC-2, José Lorenzo escribió: Then use a validator in the controller instead of validating how data looks like in the table. Validation in the table is meant for data integrity, not so much how data looks like. On Wednesday, November 12, 2014 1:06:25 PM UTC+1, cesar calvo wrote: Indeed I have _setPassword in the Entity. protected function _setPassword($password) { if (!empty($password)) { return (new DefaultPasswordHasher)-hash($password); } return $password; } El miércoles, 12 de noviembre de 2014 09:56:57 UTC-2, José Lorenzo escribió: If you have a _setPassword() function in your entity, that function will be called before validating the data. That means that the length of the password will be much larger than the original passed password. In those cases it is better to not validate using the table, but create a validator in the controller and validate the data that way. On Wednesday, November 12, 2014 12:27:22 PM UTC+1, cesar calvo wrote: The login form is very similar to that used in the blog tutorial. I can see that there is no link to the LOGIN form with associated model. ADD and EDIT actions perform validation over username but not over password field. With ignore I mean that the model validation rules do not apply. public function login() { if ($this-request-is('post')) { $user = $this-Auth-identify(); if ($user) { $this-Auth-setUser($user); return $this-redirect($this-Auth-redirectUrl()); } $this-Flash-error(__('Invalid username or password.')); } } public function add() { $user = $this-Users-newEntity($this-request-data); if ($this-request-is('post')) { if ($this-Users-save($user)) { //mail connection... $this-Flash-success(__('A message has been sent to your email address.')); return $this-redirect(['action' = 'login']); } $this-Flash-error(__('Unable to save your data.')); } $this-set(compact('user')); } public function edit() { $user = $this-Users-get($this-Auth-user('id')); if ($this-request-is(['post', 'put'])) { $this-Users-patchEntity($user, ['password' = $this-request-data('password')]); if ($this-Users-save($user)) { $this-Flash-success(__('Your data has been updated.')); return $this-redirect(['action' = 'index']); } $this-Flash-error(__('Unable to update your data.')); } $this-set(compact('user')); } //login.ctp ?= $this-Form-create(), $this-Form-input('username', ['label' = __('Username'), 'required' = true, 'placeholder' = __('E
cake3 validation rule not performed
Hi people, I have this validation rules in UsersTable. The validator ignores the -add(password, lenght) sentence. The issue is when I try to create or update a record. Best regards --cesar public function validationDefault(Validator $validator) { return $validator -validatePresence('username', 'create') -notEmpty('username', __('This field is required.')) -add('username', [ 'valid' = [ 'rule' = 'email', 'message' = __('This field requires a valid email address.') ], 'unique' = [ 'rule' = 'validateUnique', 'provider' = 'table', 'message' = __('This field must be unique.') ] ]) -validatePresence('password', 'create') -notEmpty('password', __('This field is required.')) -add('password', [ 'length' = [ 'rule' = ['minLength', 8], 'message' = __('Password must be at least {0} characters long.', 8), ] ]) ; } -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: validation criteria at least 3 fileds are not empty
As I understand validation handles only one filed. Am I wrong? rrd 2014. október 26., vasárnap 19:33:14 UTC+1 időpontban John Andersen a következőt írta: Good to see that you are trying to solve this :) I would still have gone with rolling my own validation, just by extending the validator, so it can validate a record also, not only fields. Anyway, I am not moving to CakePHP 3.x, so will not be able to give further ideas on that, but I do hope you find a solution in the end. Enjoy, John On Thursday, 23 October 2014 12:12:11 UTC+3, Radharadhya Dasa wrote: I checked to cookbook and find out that validation handles singe fields. So I used beforeSave for this. public function beforeSave(Event $event, Entity $entity, ArrayObject $options){ if((!empty($entity-name) + !empty($entity-contactname) + !empty( $entity-zip_id) + !empty($entity-address) + !empty($entity-phone) + !empty( $entity-email) + !empty($entity-birth-time)) = 3){ return true; } else{ //Error: __('At least 3 info should be filled'); return false; } } But I have a problem and a question. The above gives me this error message: *Warning* (4096): Argument 1 passed to App\Model\Table\ContactsTable::beforeSave() must be an instance of App\Model\Table\Event, instance of Cake\Event\Event given, called in /home/rrd/public_html/sanga/vendor/cakephp/cakephp/src/Event/EventManager.php on line 266 and defined [*APP/Model/Table/ContactsTable.php*, line *85*] What is the proper way to do it? The question is how to define an error message what will be flashed to the user? 2014. október 18., szombat 15:41:28 UTC+2 időpontban John Andersen a következőt írta: Assuming you are still using CakePHP 3.0 I have not seen any built-in rules for this kind of validation, so my best guess is to roll your own. See section Custom Validation Rules under Validation in the CakePHP 3.0 book. That should help you on the way. Enjoy, John On Saturday, 18 October 2014 16:21:57 UTC+3, Radharadhya Dasa wrote: Hi, Is there a way to check if at least 3 fileds are not empty? I have 8 fileds and any of those could be empty, but at least 3 of them should be not empty. Is there any build in validation rule, or how to do it? Should I do it on beforeSave? rrd -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: validation criteria at least 3 fileds are not empty
You are correct. With custom validation methods or with the validation callbacks you can extend the validation process to to more than what it is designed to do. On Tuesday, October 28, 2014 8:06:19 AM UTC+1, Radharadhya Dasa wrote: As I understand validation handles only one filed. Am I wrong? rrd 2014. október 26., vasárnap 19:33:14 UTC+1 időpontban John Andersen a következőt írta: Good to see that you are trying to solve this :) I would still have gone with rolling my own validation, just by extending the validator, so it can validate a record also, not only fields. Anyway, I am not moving to CakePHP 3.x, so will not be able to give further ideas on that, but I do hope you find a solution in the end. Enjoy, John On Thursday, 23 October 2014 12:12:11 UTC+3, Radharadhya Dasa wrote: I checked to cookbook and find out that validation handles singe fields. So I used beforeSave for this. public function beforeSave(Event $event, Entity $entity, ArrayObject $options){ if((!empty($entity-name) + !empty($entity-contactname) + !empty( $entity-zip_id) + !empty($entity-address) + !empty($entity-phone) + !empty( $entity-email) + !empty($entity-birth-time)) = 3){ return true; } else{ //Error: __('At least 3 info should be filled'); return false; } } But I have a problem and a question. The above gives me this error message: *Warning* (4096): Argument 1 passed to App\Model\Table\ContactsTable::beforeSave() must be an instance of App\Model\Table\Event, instance of Cake\Event\Event given, called in /home/rrd/public_html/sanga/vendor/cakephp/cakephp/src/Event/EventManager.php on line 266 and defined [*APP/Model/Table/ContactsTable.php*, line *85*] What is the proper way to do it? The question is how to define an error message what will be flashed to the user? 2014. október 18., szombat 15:41:28 UTC+2 időpontban John Andersen a következőt írta: Assuming you are still using CakePHP 3.0 I have not seen any built-in rules for this kind of validation, so my best guess is to roll your own. See section Custom Validation Rules under Validation in the CakePHP 3.0 book. That should help you on the way. Enjoy, John On Saturday, 18 October 2014 16:21:57 UTC+3, Radharadhya Dasa wrote: Hi, Is there a way to check if at least 3 fileds are not empty? I have 8 fileds and any of those could be empty, but at least 3 of them should be not empty. Is there any build in validation rule, or how to do it? Should I do it on beforeSave? rrd -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: validation criteria at least 3 fileds are not empty
Good to see that you are trying to solve this :) I would still have gone with rolling my own validation, just by extending the validator, so it can validate a record also, not only fields. Anyway, I am not moving to CakePHP 3.x, so will not be able to give further ideas on that, but I do hope you find a solution in the end. Enjoy, John On Thursday, 23 October 2014 12:12:11 UTC+3, Radharadhya Dasa wrote: I checked to cookbook and find out that validation handles singe fields. So I used beforeSave for this. public function beforeSave(Event $event, Entity $entity, ArrayObject $options){ if((!empty($entity-name) + !empty($entity-contactname) + !empty( $entity-zip_id) + !empty($entity-address) + !empty($entity-phone) + !empty( $entity-email) + !empty($entity-birth-time)) = 3){ return true; } else{ //Error: __('At least 3 info should be filled'); return false; } } But I have a problem and a question. The above gives me this error message: *Warning* (4096): Argument 1 passed to App\Model\Table\ContactsTable::beforeSave() must be an instance of App\Model\Table\Event, instance of Cake\Event\Event given, called in /home/rrd/public_html/sanga/vendor/cakephp/cakephp/src/Event/EventManager.php on line 266 and defined [*APP/Model/Table/ContactsTable.php*, line *85*] What is the proper way to do it? The question is how to define an error message what will be flashed to the user? 2014. október 18., szombat 15:41:28 UTC+2 időpontban John Andersen a következőt írta: Assuming you are still using CakePHP 3.0 I have not seen any built-in rules for this kind of validation, so my best guess is to roll your own. See section Custom Validation Rules under Validation in the CakePHP 3.0 book. That should help you on the way. Enjoy, John On Saturday, 18 October 2014 16:21:57 UTC+3, Radharadhya Dasa wrote: Hi, Is there a way to check if at least 3 fileds are not empty? I have 8 fileds and any of those could be empty, but at least 3 of them should be not empty. Is there any build in validation rule, or how to do it? Should I do it on beforeSave? rrd -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: validation criteria at least 3 fileds are not empty
I went forward. So in the model we need use ArrayObject; use Cake\Event\Event; Adding error message in beforeSave $entity-errors('name', __('At least 2 info should be filled')); In the controller you will find it in $contact = $this-Contacts-newEntity($this-request-data); debug($contact-errors()); But this is not what cake makes its automagic rules... So further digging needed. 2014. október 23., csütörtök 11:12:11 UTC+2 időpontban Radharadhya Dasa a következőt írta: I checked to cookbook and find out that validation handles singe fields. So I used beforeSave for this. public function beforeSave(Event $event, Entity $entity, ArrayObject $options){ if((!empty($entity-name) + !empty($entity-contactname) + !empty( $entity-zip_id) + !empty($entity-address) + !empty($entity-phone) + !empty( $entity-email) + !empty($entity-birth-time)) = 3){ return true; } else{ //Error: __('At least 3 info should be filled'); return false; } } But I have a problem and a question. The above gives me this error message: *Warning* (4096): Argument 1 passed to App\Model\Table\ContactsTable::beforeSave() must be an instance of App\Model\Table\Event, instance of Cake\Event\Event given, called in /home/rrd/public_html/sanga/vendor/cakephp/cakephp/src/Event/EventManager.php on line 266 and defined [*APP/Model/Table/ContactsTable.php*, line *85*] What is the proper way to do it? The question is how to define an error message what will be flashed to the user? 2014. október 18., szombat 15:41:28 UTC+2 időpontban John Andersen a következőt írta: Assuming you are still using CakePHP 3.0 I have not seen any built-in rules for this kind of validation, so my best guess is to roll your own. See section Custom Validation Rules under Validation in the CakePHP 3.0 book. That should help you on the way. Enjoy, John On Saturday, 18 October 2014 16:21:57 UTC+3, Radharadhya Dasa wrote: Hi, Is there a way to check if at least 3 fileds are not empty? I have 8 fileds and any of those could be empty, but at least 3 of them should be not empty. Is there any build in validation rule, or how to do it? Should I do it on beforeSave? rrd -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: validation criteria at least 3 fileds are not empty
I checked to cookbook and find out that validation handles singe fields. So I used beforeSave for this. public function beforeSave(Event $event, Entity $entity, ArrayObject $options){ if((!empty($entity-name) + !empty($entity-contactname) + !empty( $entity-zip_id) + !empty($entity-address) + !empty($entity-phone) + !empty( $entity-email) + !empty($entity-birth-time)) = 3){ return true; } else{ //Error: __('At least 3 info should be filled'); return false; } } But I have a problem and a question. The above gives me this error message: *Warning* (4096): Argument 1 passed to App\Model\Table\ContactsTable::beforeSave() must be an instance of App\Model\Table\Event, instance of Cake\Event\Event given, called in /home/rrd/public_html/sanga/vendor/cakephp/cakephp/src/Event/EventManager.php on line 266 and defined [*APP/Model/Table/ContactsTable.php*, line *85*] What is the proper way to do it? The question is how to define an error message what will be flashed to the user? 2014. október 18., szombat 15:41:28 UTC+2 időpontban John Andersen a következőt írta: Assuming you are still using CakePHP 3.0 I have not seen any built-in rules for this kind of validation, so my best guess is to roll your own. See section Custom Validation Rules under Validation in the CakePHP 3.0 book. That should help you on the way. Enjoy, John On Saturday, 18 October 2014 16:21:57 UTC+3, Radharadhya Dasa wrote: Hi, Is there a way to check if at least 3 fileds are not empty? I have 8 fileds and any of those could be empty, but at least 3 of them should be not empty. Is there any build in validation rule, or how to do it? Should I do it on beforeSave? rrd -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
validation criteria at least 3 fileds are not empty
Hi, Is there a way to check if at least 3 fileds are not empty? I have 8 fileds and any of those could be empty, but at least 3 of them should be not empty. Is there any build in validation rule, or how to do it? Should I do it on beforeSave? rrd -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: validation criteria at least 3 fileds are not empty
Assuming you are still using CakePHP 3.0 I have not seen any built-in rules for this kind of validation, so my best guess is to roll your own. See section Custom Validation Rules under Validation in the CakePHP 3.0 book. That should help you on the way. Enjoy, John On Saturday, 18 October 2014 16:21:57 UTC+3, Radharadhya Dasa wrote: Hi, Is there a way to check if at least 3 fileds are not empty? I have 8 fileds and any of those could be empty, but at least 3 of them should be not empty. Is there any build in validation rule, or how to do it? Should I do it on beforeSave? rrd -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: Model Validation
Thanks for your response , but I submitting the form by ajax then validate. I have encode the error get it on success method of ajax. The problem arising How can I show these error message . I want model validation using ajax On Wednesday, 30 July 2014 14:59:03 UTC+5:30, Dr. Tarique Sani wrote: Start here http://bit.ly/UKovlN If you get stuck with a method you choose ask further questions. Tarique On Wed, Jul 30, 2014 at 2:40 PM, Sudhir Pandey shid...@gmail.com javascript: wrote: How can I perform cakephp Model validation using ajax shows error message. I have already set the error message in controller but not shown in view. $this-Candidateprofile-set($this-data); if($this-Candidateprofile-validates()) { $this-Candidateprofile-create(); if($this-Candidateprofile-saveAll($this-data)) { }else{ $invalidFields=$this-Candidateprofile-invalidFields(); $this-set('invalidFields',$invalidFields); } }else{ $invalidFields=$this-Candidateprofile-invalidFields(); $this-set('invalidFields',$invalidFields); } -- 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 cake-php+u...@googlegroups.com javascript:. To post to this group, send email to cake...@googlegroups.com javascript:. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout. -- = The Conference Schedule Creator : http://shdlr.com PHP for E-Biz : http://sanisoft.com = -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: Model Validation
Are you submitting the entire form or individual fields via ajax? If you're submitting the entire form and returning HTML, make sure to set your $invalidFields variable which you have and check if(isset($invalidFields)) in your returned html to highlight the fields. If you're still not sure please post your ajax code as well as all the relevant controller code so we can see exactly what you are doing wrong. Thanks On 31 July 2014 09:37, Sudhir Pandey shidhu...@gmail.com wrote: Thanks for your response , but I submitting the form by ajax then validate. I have encode the error get it on success method of ajax. The problem arising How can I show these error message . I want model validation using ajax On Wednesday, 30 July 2014 14:59:03 UTC+5:30, Dr. Tarique Sani wrote: Start here http://bit.ly/UKovlN If you get stuck with a method you choose ask further questions. Tarique On Wed, Jul 30, 2014 at 2:40 PM, Sudhir Pandey shid...@gmail.com wrote: How can I perform cakephp Model validation using ajax shows error message. I have already set the error message in controller but not shown in view. $this-Candidateprofile-set($this-data); if($this-Candidateprofile-validates()) { $this-Candidateprofile-create(); if($this-Candidateprofile-saveAll($this-data)) { }else{ $invalidFields=$this-Candidateprofile-invalidFields(); $this-set('invalidFields',$invalidFields); } }else{ $invalidFields=$this-Candidateprofile-invalidFields(); $this-set('invalidFields',$invalidFields); } -- 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 cake-php+u...@googlegroups.com. To post to this group, send email to cake...@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout. -- = The Conference Schedule Creator : http://shdlr.com PHP for E-Biz : http://sanisoft.com = -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout. -- Kind Regards Stephen Speakman -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Model Validation
How can I perform cakephp Model validation using ajax shows error message. I have already set the error message in controller but not shown in view. $this-Candidateprofile-set($this-data); if($this-Candidateprofile-validates()) { $this-Candidateprofile-create(); if($this-Candidateprofile-saveAll($this-data)) { }else{ $invalidFields=$this-Candidateprofile-invalidFields(); $this-set('invalidFields',$invalidFields); } }else{ $invalidFields=$this-Candidateprofile-invalidFields(); $this-set('invalidFields',$invalidFields); } -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: Model Validation
Start here http://bit.ly/UKovlN If you get stuck with a method you choose ask further questions. Tarique On Wed, Jul 30, 2014 at 2:40 PM, Sudhir Pandey shidhu...@gmail.com wrote: How can I perform cakephp Model validation using ajax shows error message. I have already set the error message in controller but not shown in view. $this-Candidateprofile-set($this-data); if($this-Candidateprofile-validates()) { $this-Candidateprofile-create(); if($this-Candidateprofile-saveAll($this-data)) { }else{ $invalidFields=$this-Candidateprofile-invalidFields(); $this-set('invalidFields',$invalidFields); } }else{ $invalidFields=$this-Candidateprofile-invalidFields(); $this-set('invalidFields',$invalidFields); } -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout. -- = The Conference Schedule Creator : http://shdlr.com PHP for E-Biz : http://sanisoft.com = -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Display Form Validation Errors CakePHP 3
Hi , On my package creation form I am using cakephp validation. The validation is working perfectly. Unfortunately the validation error messages are not displaying on my form. Would you please help me on this? The code I am using is as follows. Please advise me what I am missing here. *My Table Class* == public function validationDefault(Validator $validator) { $validator -notEmpty('name','A valid package name is required') -notEmpty('annual_price','A valid annual price is required') -notEmpty('monthly_price','A valid monthly price is required') -notEmpty('duration','Minimum duration of contract is required') -notEmpty('no_partners','Maximum no of partners is required') -notEmpty('no_emails','Maximum no of emails per month is required'); return $validator; } *On my controller* I am using the following codes to get the validation result. $package = $this-Package-newEntity($this-request-data); if ($this-SubscriptionPackage-save($package)) { $this-Flash-success(__('The package has been saved.')); return $this-redirect(['action' = 'index']); } else{ //print_r($package-errors()); It will display an array with field names and message. } *On my ctp file I am using the following code.* ?php echo $this-Form-input('name', ['label' = 'Package Name']); ? ?php echo $this-Form-input('annual_price', ['label' = 'Price / Year','type' = 'decimal']); ? ?php echo $this-Form-input('monthly_price', ['label' = 'Price / Month','type' = 'decimal']); ? ?php echo $this-Form-input('duration', ['label' = 'Minimum Months of Contract','type' = 'integer']);? ?php echo $this-Form-input('no_partners', ['label' = 'Maximum No of Partners','type' = 'integer']);? ?php echo $this-Form-input('no_emails', ['label' = 'Maximum No of Emails/Month','type' = 'integer']);? ?php echo $this-Form-input('storage', ['label' = 'Maximum Allowed Storage Space (GB)','type' =? -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: Display Form Validation Errors CakePHP 3
There does not seem to be any Form-create() call in that code you pasted. Can you share the full code? On Wednesday, July 30, 2014 3:20:54 PM UTC+2, Jipson Thomas wrote: Hi , On my package creation form I am using cakephp validation. The validation is working perfectly. Unfortunately the validation error messages are not displaying on my form. Would you please help me on this? The code I am using is as follows. Please advise me what I am missing here. *My Table Class* == public function validationDefault(Validator $validator) { $validator -notEmpty('name','A valid package name is required') -notEmpty('annual_price','A valid annual price is required') -notEmpty('monthly_price','A valid monthly price is required') -notEmpty('duration','Minimum duration of contract is required') -notEmpty('no_partners','Maximum no of partners is required') -notEmpty('no_emails','Maximum no of emails per month is required'); return $validator; } *On my controller* I am using the following codes to get the validation result. $package = $this-Package-newEntity($this-request-data); if ($this-SubscriptionPackage-save($package)) { $this-Flash-success(__('The package has been saved.')); return $this-redirect(['action' = 'index']); } else{ //print_r($package-errors()); It will display an array with field names and message. } *On my ctp file I am using the following code.* ?php echo $this-Form-input('name', ['label' = 'Package Name']); ? ?php echo $this-Form-input('annual_price', ['label' = 'Price / Year','type' = 'decimal']); ? ?php echo $this-Form-input('monthly_price', ['label' = 'Price / Month','type' = 'decimal']); ? ?php echo $this-Form-input('duration', ['label' = 'Minimum Months of Contract','type' = 'integer']);? ?php echo $this-Form-input('no_partners', ['label' = 'Maximum No of Partners','type' = 'integer']);? ?php echo $this-Form-input('no_emails', ['label' = 'Maximum No of Emails/Month','type' = 'integer']);? ?php echo $this-Form-input('storage', ['label' = 'Maximum Allowed Storage Space (GB)','type' =? -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: Display Form Validation Errors CakePHP 3
Hi Jose Lorenzo, Thank you for the reply. Please find the below code *CTP* == div class=users form ?php echo $this-Flash-render('auth') ? ?php echo $this-Form-create() ? fieldset legend?php echo __('Please enter the package details') ?/legend ?php echo $this-Form-input('name', ['label' = 'Package Name']); ? ?php echo $this-Form-input('annual_price', ['label' = 'Price / Year','type' = 'decimal']); ? ?php echo $this-Form-input('monthly_price', ['label' = 'Price / Month','type' = 'decimal']); ? ?php echo $this-Form-input('duration', ['label' = 'Minimum Months of Contract','type' = 'integer']);? ?php echo $this-Form-input('no_partners', ['label' = 'Maximum No of Partners','type' = 'integer']);? ?php echo $this-Form-input('no_emails', ['label' = 'Maximum No of Emails/Month','type' = 'integer']);? ?php echo $this-Form-input('storage', ['label' = 'Maximum Allowed Storage Space (GB)','type' = 'integer']);? ?php echo $this-Form-input('resource_library', ['label' = 'Resource Library','type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('portal_cms', ['label' = 'Portal CMS','type' = 'checkbox','value'='Y','hiddenField' = 'N']);? ?php echo $this-Form-input('MDF', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('deal_registration', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('partner_recruit', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('training', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('Socialmedia', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('multilingual', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('partner_incentive', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('partner_app', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? /fieldset ?php echo $this-Form-button(__('Save')); ? ?php echo $this-Form-end() ? /div *Controller Action* == public function add(){ $package = $this-Package-newEntity($this-request-data); if ($this-request-is('post')) { if ($this-Package-save($package)) { $this-Flash-success(__('The package has been saved.')); return $this-redirect(['action' = 'index']); } else{ // $errors = $this-Package-errors(); $error_string= implode('\n',$package-errors()); //print_r($package); } $this-Flash-error(__('Unable to add the package.')); } $this-set('package', $package); } *Model - Table Class* = class PackagesTable extends Table { public function initialize(array $config) { $this-addBehavior('Timestamp', [ 'events' = [ 'Model.beforeSave' = [ 'created_on' = 'new', 'modified_on' = 'always', ] ] ]); } public function validationDefault(Validator $validator) { $validator -notEmpty('name','A valid package name is required') -notEmpty('annual_price','A valid annual price is required') -notEmpty('monthly_price','A valid monthly price is required') -notEmpty('duration','Minimum duration of contract is required') -notEmpty('no_partners','Maximum no of partners is required') -notEmpty('no_emails','Maximum no of emails per month is required'); return $validator; } } Regards, Jipson On Wednesday, 30 July 2014 14:20:54 UTC+1, Jipson Thomas wrote: Hi , On my package creation form I am using cakephp validation. The validation is working perfectly. Unfortunately the validation error messages are not displaying on my form. Would you please help me on this? The code I am using is as follows. Please advise me what I am missing here. *My Table Class* == public function validationDefault(Validator $validator) { $validator -notEmpty('name','A valid package name is required') -notEmpty('annual_price','A valid annual price is required') -notEmpty('monthly_price','A valid monthly price is required') -notEmpty('duration','Minimum duration of contract is required') -notEmpty('no_partners','Maximum no of partners is required') -notEmpty('no_emails','Maximum no of emails per month is required'); return $validator; } *On my controller* I am using the following codes to get the validation result. $package = $this-Package-newEntity
Re: Display Form Validation Errors CakePHP 3
Ok, you problem is that you are calling create() without the entity, You should get that fixed by doing: ?php echo $this-Form-create($package) ? On Wednesday, July 30, 2014 3:29:33 PM UTC+2, Jipson Thomas wrote: Hi Jose Lorenzo, Thank you for the reply. Please find the below code *CTP* == div class=users form ?php echo $this-Flash-render('auth') ? ?php echo $this-Form-create() ? fieldset legend?php echo __('Please enter the package details') ?/legend ?php echo $this-Form-input('name', ['label' = 'Package Name']); ? ?php echo $this-Form-input('annual_price', ['label' = 'Price / Year','type' = 'decimal']); ? ?php echo $this-Form-input('monthly_price', ['label' = 'Price / Month','type' = 'decimal']); ? ?php echo $this-Form-input('duration', ['label' = 'Minimum Months of Contract','type' = 'integer']);? ?php echo $this-Form-input('no_partners', ['label' = 'Maximum No of Partners','type' = 'integer']);? ?php echo $this-Form-input('no_emails', ['label' = 'Maximum No of Emails/Month','type' = 'integer']);? ?php echo $this-Form-input('storage', ['label' = 'Maximum Allowed Storage Space (GB)','type' = 'integer']);? ?php echo $this-Form-input('resource_library', ['label' = 'Resource Library','type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('portal_cms', ['label' = 'Portal CMS','type' = 'checkbox','value'='Y','hiddenField' = 'N']);? ?php echo $this-Form-input('MDF', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('deal_registration', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('partner_recruit', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('training', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('Socialmedia', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('multilingual', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('partner_incentive', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('partner_app', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? /fieldset ?php echo $this-Form-button(__('Save')); ? ?php echo $this-Form-end() ? /div *Controller Action* == public function add(){ $package = $this-Package-newEntity($this-request-data); if ($this-request-is('post')) { if ($this-Package-save($package)) { $this-Flash-success(__('The package has been saved.')); return $this-redirect(['action' = 'index']); } else{ // $errors = $this-Package-errors(); $error_string= implode('\n',$package-errors()); //print_r($package); } $this-Flash-error(__('Unable to add the package.')); } $this-set('package', $package); } *Model - Table Class* = class PackagesTable extends Table { public function initialize(array $config) { $this-addBehavior('Timestamp', [ 'events' = [ 'Model.beforeSave' = [ 'created_on' = 'new', 'modified_on' = 'always', ] ] ]); } public function validationDefault(Validator $validator) { $validator -notEmpty('name','A valid package name is required') -notEmpty('annual_price','A valid annual price is required') -notEmpty('monthly_price','A valid monthly price is required') -notEmpty('duration','Minimum duration of contract is required') -notEmpty('no_partners','Maximum no of partners is required') -notEmpty('no_emails','Maximum no of emails per month is required'); return $validator; } } Regards, Jipson On Wednesday, 30 July 2014 14:20:54 UTC+1, Jipson Thomas wrote: Hi , On my package creation form I am using cakephp validation. The validation is working perfectly. Unfortunately the validation error messages are not displaying on my form. Would you please help me on this? The code I am using is as follows. Please advise me what I am missing here. *My Table Class* == public function validationDefault(Validator $validator) { $validator -notEmpty('name','A valid package name is required') -notEmpty('annual_price','A valid annual price is required') -notEmpty('monthly_price','A valid monthly price is required') -notEmpty('duration','Minimum duration of contract is required
Re: Display Form Validation Errors CakePHP 3
Hi Jose Lorenzo, Thank you very much. Now it is working perfectly. Regards, Jipson On Wednesday, 30 July 2014 14:31:30 UTC+1, José Lorenzo wrote: Ok, you problem is that you are calling create() without the entity, You should get that fixed by doing: ?php echo $this-Form-create($package) ? On Wednesday, July 30, 2014 3:29:33 PM UTC+2, Jipson Thomas wrote: Hi Jose Lorenzo, Thank you for the reply. Please find the below code *CTP* == div class=users form ?php echo $this-Flash-render('auth') ? ?php echo $this-Form-create() ? fieldset legend?php echo __('Please enter the package details') ?/legend ?php echo $this-Form-input('name', ['label' = 'Package Name']); ? ?php echo $this-Form-input('annual_price', ['label' = 'Price / Year','type' = 'decimal']); ? ?php echo $this-Form-input('monthly_price', ['label' = 'Price / Month','type' = 'decimal']); ? ?php echo $this-Form-input('duration', ['label' = 'Minimum Months of Contract','type' = 'integer']);? ?php echo $this-Form-input('no_partners', ['label' = 'Maximum No of Partners','type' = 'integer']);? ?php echo $this-Form-input('no_emails', ['label' = 'Maximum No of Emails/Month','type' = 'integer']);? ?php echo $this-Form-input('storage', ['label' = 'Maximum Allowed Storage Space (GB)','type' = 'integer']);? ?php echo $this-Form-input('resource_library', ['label' = 'Resource Library','type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('portal_cms', ['label' = 'Portal CMS','type' = 'checkbox','value'='Y','hiddenField' = 'N']);? ?php echo $this-Form-input('MDF', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('deal_registration', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('partner_recruit', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('training', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('Socialmedia', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('multilingual', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('partner_incentive', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('partner_app', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? /fieldset ?php echo $this-Form-button(__('Save')); ? ?php echo $this-Form-end() ? /div *Controller Action* == public function add(){ $package = $this-Package-newEntity($this-request-data); if ($this-request-is('post')) { if ($this-Package-save($package)) { $this-Flash-success(__('The package has been saved.')); return $this-redirect(['action' = 'index']); } else{ // $errors = $this-Package-errors(); $error_string= implode('\n',$package-errors()); //print_r($package); } $this-Flash-error(__('Unable to add the package.')); } $this-set('package', $package); } *Model - Table Class* = class PackagesTable extends Table { public function initialize(array $config) { $this-addBehavior('Timestamp', [ 'events' = [ 'Model.beforeSave' = [ 'created_on' = 'new', 'modified_on' = 'always', ] ] ]); } public function validationDefault(Validator $validator) { $validator -notEmpty('name','A valid package name is required') -notEmpty('annual_price','A valid annual price is required') -notEmpty('monthly_price','A valid monthly price is required') -notEmpty('duration','Minimum duration of contract is required') -notEmpty('no_partners','Maximum no of partners is required') -notEmpty('no_emails','Maximum no of emails per month is required'); return $validator; } } Regards, Jipson On Wednesday, 30 July 2014 14:20:54 UTC+1, Jipson Thomas wrote: Hi , On my package creation form I am using cakephp validation. The validation is working perfectly. Unfortunately the validation error messages are not displaying on my form. Would you please help me on this? The code I am using is as follows. Please advise me what I am missing here. *My Table Class* == public function validationDefault(Validator $validator) { $validator -notEmpty('name','A valid package name is required') -notEmpty('annual_price','A valid annual price is required') -notEmpty
Re: Display Form Validation Errors CakePHP 3
Glad it worked :) On Wednesday, July 30, 2014 3:35:21 PM UTC+2, Jipson Thomas wrote: Hi Jose Lorenzo, Thank you very much. Now it is working perfectly. Regards, Jipson On Wednesday, 30 July 2014 14:31:30 UTC+1, José Lorenzo wrote: Ok, you problem is that you are calling create() without the entity, You should get that fixed by doing: ?php echo $this-Form-create($package) ? On Wednesday, July 30, 2014 3:29:33 PM UTC+2, Jipson Thomas wrote: Hi Jose Lorenzo, Thank you for the reply. Please find the below code *CTP* == div class=users form ?php echo $this-Flash-render('auth') ? ?php echo $this-Form-create() ? fieldset legend?php echo __('Please enter the package details') ?/legend ?php echo $this-Form-input('name', ['label' = 'Package Name']); ? ?php echo $this-Form-input('annual_price', ['label' = 'Price / Year','type' = 'decimal']); ? ?php echo $this-Form-input('monthly_price', ['label' = 'Price / Month','type' = 'decimal']); ? ?php echo $this-Form-input('duration', ['label' = 'Minimum Months of Contract','type' = 'integer']);? ?php echo $this-Form-input('no_partners', ['label' = 'Maximum No of Partners','type' = 'integer']);? ?php echo $this-Form-input('no_emails', ['label' = 'Maximum No of Emails/Month','type' = 'integer']);? ?php echo $this-Form-input('storage', ['label' = 'Maximum Allowed Storage Space (GB)','type' = 'integer']);? ?php echo $this-Form-input('resource_library', ['label' = 'Resource Library','type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('portal_cms', ['label' = 'Portal CMS','type' = 'checkbox','value'='Y','hiddenField' = 'N']);? ?php echo $this-Form-input('MDF', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('deal_registration', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('partner_recruit', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('training', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('Socialmedia', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('multilingual', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('partner_incentive', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? ?php echo $this-Form-input('partner_app', ['type' = 'checkbox','value' = 'Y','hiddenField' = 'N']);? /fieldset ?php echo $this-Form-button(__('Save')); ? ?php echo $this-Form-end() ? /div *Controller Action* == public function add(){ $package = $this-Package-newEntity($this-request-data); if ($this-request-is('post')) { if ($this-Package-save($package)) { $this-Flash-success(__('The package has been saved.')); return $this-redirect(['action' = 'index']); } else{ // $errors = $this-Package-errors(); $error_string= implode('\n',$package-errors()); //print_r($package); } $this-Flash-error(__('Unable to add the package.')); } $this-set('package', $package); } *Model - Table Class* = class PackagesTable extends Table { public function initialize(array $config) { $this-addBehavior('Timestamp', [ 'events' = [ 'Model.beforeSave' = [ 'created_on' = 'new', 'modified_on' = 'always', ] ] ]); } public function validationDefault(Validator $validator) { $validator -notEmpty('name','A valid package name is required') -notEmpty('annual_price','A valid annual price is required') -notEmpty('monthly_price','A valid monthly price is required') -notEmpty('duration','Minimum duration of contract is required') -notEmpty('no_partners','Maximum no of partners is required') -notEmpty('no_emails','Maximum no of emails per month is required'); return $validator; } } Regards, Jipson On Wednesday, 30 July 2014 14:20:54 UTC+1, Jipson Thomas wrote: Hi , On my package creation form I am using cakephp validation. The validation is working perfectly. Unfortunately the validation error messages are not displaying on my form. Would you please help me on this? The code I am using is as follows. Please advise me what I am missing here. *My Table Class* == public function validationDefault(Validator $validator) { $validator -notEmpty('name','A valid package name is required
CakePHP 3.0 Validation ?
Hi everyone, I'm trying to build a new CakePHP 3 application but I didn't manage to get the data validation working... I followed the CakePHP 3.0 book, and particulary this page http://book.cakephp.org/3.0/en/tutorials-and-examples/blog/part-two.html but it didn't help. Currently, my Table is as follow: class DevoirsTable extends Table { public function initialize(array $config) { } public function validationDefault (Validator $validator) { debug('TEST HERE') ; $validator-notEmpty('pseudo', 'Oh my god!'); return $validator; } } And my controller: $this-Devoirs = TableRegistry::get('Devoirs') ; $devoir = $this-Devoirs-find()-first() ; if ($this-request-is(['post', 'put'])) { $this-Devoirs-patchEntity($devoir, $this-request-data) ; $this-set('saved', $this-Devoirs-save($devoir, ['validate' = true])) ; } This is only a test action, the row is correctly updated in my database but the 'TEST HERE' string never showed up... I don't understand how the new validation system works, maybe someone can help me? Thanks, -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: CakePHP 3.0 Validation ?
A few questions: - Where did you put DevoirsTable ? - How did you name the DevoirsTable file? - What namespace did you use in that file? - Can you verify that file is being included? And a small correction, This is not needed in a DevoirsController: $this-Devoirs = TableRegistry::get('Devoirs'); On Monday, July 28, 2014 10:20:06 PM UTC+2, Mikaël Capelle wrote: Hi everyone, I'm trying to build a new CakePHP 3 application but I didn't manage to get the data validation working... I followed the CakePHP 3.0 book, and particulary this page http://book.cakephp.org/3.0/en/tutorials-and-examples/blog/part-two.html but it didn't help. Currently, my Table is as follow: class DevoirsTable extends Table { public function initialize(array $config) { } public function validationDefault (Validator $validator) { debug('TEST HERE') ; $validator-notEmpty('pseudo', 'Oh my god!'); return $validator; } } And my controller: $this-Devoirs = TableRegistry::get('Devoirs') ; $devoir = $this-Devoirs-find()-first() ; if ($this-request-is(['post', 'put'])) { $this-Devoirs-patchEntity($devoir, $this-request-data) ; $this-set('saved', $this-Devoirs-save($devoir, ['validate' = true])) ; } This is only a test action, the row is correctly updated in my database but the 'TEST HERE' string never showed up... I don't understand how the new validation system works, maybe someone can help me? Thanks, -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: CakePHP 3.0 Validation ?
I'm not in DevoirsController. Thanks to your questions, I found my mistake, I named the file DevoirsTable.ctp instead of DevoirsTable.php... Stupid copy/paste mistake, thanks you for pointing me to this! On Monday, July 28, 2014 10:54:33 PM UTC+2, José Lorenzo wrote: A few questions: - Where did you put DevoirsTable ? - How did you name the DevoirsTable file? - What namespace did you use in that file? - Can you verify that file is being included? And a small correction, This is not needed in a DevoirsController: $this-Devoirs = TableRegistry::get('Devoirs'); On Monday, July 28, 2014 10:20:06 PM UTC+2, Mikaël Capelle wrote: Hi everyone, I'm trying to build a new CakePHP 3 application but I didn't manage to get the data validation working... I followed the CakePHP 3.0 book, and particulary this page http://book.cakephp.org/3.0/en/tutorials-and-examples/blog/part-two.html but it didn't help. Currently, my Table is as follow: class DevoirsTable extends Table { public function initialize(array $config) { } public function validationDefault (Validator $validator) { debug('TEST HERE') ; $validator-notEmpty('pseudo', 'Oh my god!'); return $validator; } } And my controller: $this-Devoirs = TableRegistry::get('Devoirs') ; $devoir = $this-Devoirs-find()-first() ; if ($this-request-is(['post', 'put'])) { $this-Devoirs-patchEntity($devoir, $this-request-data) ; $this-set('saved', $this-Devoirs-save($devoir, ['validate' = true])) ; } This is only a test action, the row is correctly updated in my database but the 'TEST HERE' string never showed up... I don't understand how the new validation system works, maybe someone can help me? Thanks, -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: CakePHP 3.0 Validation ?
You can also use $this-loadModel('Devoirs'); in the controller Glad you found the problem On Monday, July 28, 2014 11:10:09 PM UTC+2, Mikaël Capelle wrote: I'm not in DevoirsController. Thanks to your questions, I found my mistake, I named the file DevoirsTable.ctp instead of DevoirsTable.php... Stupid copy/paste mistake, thanks you for pointing me to this! On Monday, July 28, 2014 10:54:33 PM UTC+2, José Lorenzo wrote: A few questions: - Where did you put DevoirsTable ? - How did you name the DevoirsTable file? - What namespace did you use in that file? - Can you verify that file is being included? And a small correction, This is not needed in a DevoirsController: $this-Devoirs = TableRegistry::get('Devoirs'); On Monday, July 28, 2014 10:20:06 PM UTC+2, Mikaël Capelle wrote: Hi everyone, I'm trying to build a new CakePHP 3 application but I didn't manage to get the data validation working... I followed the CakePHP 3.0 book, and particulary this page http://book.cakephp.org/3.0/en/tutorials-and-examples/blog/part-two.html but it didn't help. Currently, my Table is as follow: class DevoirsTable extends Table { public function initialize(array $config) { } public function validationDefault (Validator $validator) { debug('TEST HERE') ; $validator-notEmpty('pseudo', 'Oh my god!'); return $validator; } } And my controller: $this-Devoirs = TableRegistry::get('Devoirs') ; $devoir = $this-Devoirs-find()-first() ; if ($this-request-is(['post', 'put'])) { $this-Devoirs-patchEntity($devoir, $this-request-data) ; $this-set('saved', $this-Devoirs-save($devoir, ['validate' = true])) ; } This is only a test action, the row is correctly updated in my database but the 'TEST HERE' string never showed up... I don't understand how the new validation system works, maybe someone can help me? Thanks, -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: Data Validation: Checking if at least one field is populated and multiple rules not validating
Thanks very much Stephen. I kept at it and found the solution lay in removing the 'required' and 'allowEmpty' from the 'needOne' ruleset, and adding a 'required' = false in the view. Here's the working solution for any one else with this problem: The model: public $validate = array( 'last_name'= array( 'needOne' = array ( 'rule' = 'checkOne', 'message' = 'You must enter at least a contact name or email address.' ), 'alphaNumeric' = array( 'rule' = 'alphaNumeric', 'message' = 'Alphabets and numbers only', 'allowEmpty' = TRUE ), 'between' = array( 'rule' = array('between', 2, 45), 'message' = 'Between 2 to 45 characters', 'allowEmpty' = TRUE ) ), 'email' = array( 'needOne' = array ( 'rule' = 'checkOne', 'message' = 'You must enter at least a contact name or email address.' ), 'emailAddress' = array ( 'rule' = 'email', 'message' = 'A valid Email address is required', 'allowEmpty' = TRUE ) ) ); // Ensure at least the last name or email field value is provided public function checkOne($data) { if(!empty($this-data[$this-alias]['last_name']) || !empty($this-data[$this-alias]['email'])) { return TRUE; } else { return FALSE; } } The view/fields (I'm using Bootstrap): echo $this-Form-input('last_name', array( 'required' = false, 'fieldset' = false, 'label' = false, 'before' = 'label class=control-labelLast Name span class=one-required*/span/label', 'class' = 'form-control', 'placeholder' = 'Last Name', 'div' = 'form-group col-sm-12', 'error' = array( 'attributes' = array( 'wrap' = 'div', 'class' = 'alert alert-danger' ) ) ) ); echo $this-Form-input('email', array( 'required' = false, 'fieldset' = false, 'label' = false, 'before' = 'label class=control-labelEmail span class=one-required*/span/label', 'after' = '', 'class' = 'form-control', 'div' = 'form-group col-sm-12 col-xs-12', 'error' = array( 'attributes' = array( 'wrap' = 'div', 'class' = 'alert alert-danger' ) ) ) ); Thanks. On Wednesday, 16 July 2014 00:44:50 UTC+10, seba wrote: Folks, I'm trying to ensure at least one of two fields (last_name or email) is being populated. Each field also has multiple rules. I'm using CakePHP version 2.4.2. The problem I have at the moment, after multiple permutations of updating and/or moving around the use 'last', 'allowEmpty', 'required', etc, is that the fields just aren't validating at all, or aren't executing all the rules when a field is populated. Any advice on how to modify the code below to achieve the following behaviour is much appreciated: 1. One of the two fields must be populated; 2. The other rules attached to each field must validate as well (i.e. if a last name is passed, then it must be between 2 and 45 chars and alphanumeric only) Here's the model code: public $validate = array( 'last_name'= array( 'needOne' = array ( 'required' = FALSE, 'allowEmpty' = TRUE, 'last' = TRUE, 'rule' = array('checkOne','last_name'), 'message' = 'You must enter at least a contact name or email address.' ), 'alphaNumeric' = array( 'rule' = 'alphaNumeric', 'message' = 'Alphabets and numbers only' ), 'between' = array( 'rule' = array('between', 2, 45), 'message' = 'Between 2 to 45 characters' ) ), 'email' = array( 'needOne' = array ( 'required' = FALSE, 'allowEmpty' = TRUE, 'last' = TRUE, 'rule' = array('checkOne','email'), 'message' = 'You must enter at least a contact name or email address.' ), 'emailAddress' = array ( 'last' = TRUE, 'rule' = array('email', FALSE), 'message' = 'A valid Email address is required' ) ) ); // Ensure at least the last name or email field value is provided function checkOne() { if(!empty($this-data[$this-User]['last_name']) || !empty($this-data[$this-User]['email'])){ return true; } else { return false; } } Thanks in advance! -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Data Validation: Checking if at least one field is populated and multiple rules not validating
Folks, I'm trying to ensure at least one of two fields (last_name or email) is being populated. Each field also has multiple rules. I'm using CakePHP version 2.4.2. The problem I have at the moment, after multiple permutations of updating and/or moving around the use 'last', 'allowEmpty', 'required', etc, is that the fields just aren't validating at all, or aren't executing all the rules when a field is populated. Any advice on how to modify the code below to achieve the following behaviour is much appreciated: 1. One of the two fields must be populated; 2. The other rules attached to each field must validate as well (i.e. if a last name is passed, then it must be between 2 and 45 chars and alphanumeric only) Here's the model code: public $validate = array( 'last_name'= array( 'needOne' = array ( 'required' = FALSE, 'allowEmpty' = TRUE, 'last' = TRUE, 'rule' = array('checkOne','last_name'), 'message' = 'You must enter at least a contact name or email address.' ), 'alphaNumeric' = array( 'rule' = 'alphaNumeric', 'message' = 'Alphabets and numbers only' ), 'between' = array( 'rule' = array('between', 2, 45), 'message' = 'Between 2 to 45 characters' ) ), 'email' = array( 'needOne' = array ( 'required' = FALSE, 'allowEmpty' = TRUE, 'last' = TRUE, 'rule' = array('checkOne','email'), 'message' = 'You must enter at least a contact name or email address.' ), 'emailAddress' = array ( 'last' = TRUE, 'rule' = array('email', FALSE), 'message' = 'A valid Email address is required' ) ) ); // Ensure at least the last name or email field value is provided function checkOne() { if(!empty($this-data[$this-User]['last_name']) || !empty($this-data[$this-User]['email'])){ return true; } else { return false; } } Thanks in advance! -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: Data Validation: Checking if at least one field is populated and multiple rules not validating
You can try dynamically adding or removing validation rules in your custom 'checkOne' method. http://book.cakephp.org/2.0/en/models/data-validation.html#removing-rules-from-the-set On 15 July 2014 15:44, seba sebastian.allo...@gmail.com wrote: Folks, I'm trying to ensure at least one of two fields (last_name or email) is being populated. Each field also has multiple rules. I'm using CakePHP version 2.4.2. The problem I have at the moment, after multiple permutations of updating and/or moving around the use 'last', 'allowEmpty', 'required', etc, is that the fields just aren't validating at all, or aren't executing all the rules when a field is populated. Any advice on how to modify the code below to achieve the following behaviour is much appreciated: 1. One of the two fields must be populated; 2. The other rules attached to each field must validate as well (i.e. if a last name is passed, then it must be between 2 and 45 chars and alphanumeric only) Here's the model code: public $validate = array( 'last_name'= array( 'needOne' = array ( 'required' = FALSE, 'allowEmpty' = TRUE, 'last' = TRUE, 'rule' = array('checkOne','last_name'), 'message' = 'You must enter at least a contact name or email address.' ), 'alphaNumeric' = array( 'rule' = 'alphaNumeric', 'message' = 'Alphabets and numbers only' ), 'between' = array( 'rule' = array('between', 2, 45), 'message' = 'Between 2 to 45 characters' ) ), 'email' = array( 'needOne' = array ( 'required' = FALSE, 'allowEmpty' = TRUE, 'last' = TRUE, 'rule' = array('checkOne','email'), 'message' = 'You must enter at least a contact name or email address.' ), 'emailAddress' = array ( 'last' = TRUE, 'rule' = array('email', FALSE), 'message' = 'A valid Email address is required' ) ) ); // Ensure at least the last name or email field value is provided function checkOne() { if(!empty($this-data[$this-User]['last_name']) || !empty($this-data[$this-User]['email'])){ return true; } else { return false; } } Thanks in advance! -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout. -- Kind Regards Stephen Speakman -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
callback succession / why afterValidate() if validation fails
Dear Bakers, I have an app under CakePHP 2.5.1. I'm not sure to understand how the callback succession is supposed to work, eg if the validation fails, there is IMHO no reason to run afterValidate() ? But it does run indeed. What I'm trying to do: my form has 7 entry fields. The ones I have issues with are start_time, end_time and duration. The user might enter a combination of them, eg - start end - start duration - duration end - only duration (at the end, I only care about durations) My strategy for saving the data is - have a validation for the fields, eg to get the right time format (HH:MM) or duration, but with 'required' = false and 'allowEmpty' = true - in afterValidate(), I verify that the new entered start and end do not overlap with existing records - in beforeSave(), I verify the combination entered by the user, the goal being to calculate a duration My problem is that even if the user enters a wrong format for a field, Cake still run afterValidate(), causing problems in my queries, before I can return false to abort the save. Now I'm not really sure why cake runs afterValidate() if validation fails. Is there something I missed ? TIA for your assistance, Charles -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: callback succession / why afterValidate() if validation fails
It is just the way it works. There are equal amount of reasons for wanting the callback to be run after the validation has failed, can you not change the logic to check if there are any validation errors and not run the rest of the method? On Monday, May 26, 2014 10:06:50 AM UTC+2, cbueche wrote: Dear Bakers, I have an app under CakePHP 2.5.1. I'm not sure to understand how the callback succession is supposed to work, eg if the validation fails, there is IMHO no reason to run afterValidate() ? But it does run indeed. What I'm trying to do: my form has 7 entry fields. The ones I have issues with are start_time, end_time and duration. The user might enter a combination of them, eg - start end - start duration - duration end - only duration (at the end, I only care about durations) My strategy for saving the data is - have a validation for the fields, eg to get the right time format (HH:MM) or duration, but with 'required' = false and 'allowEmpty' = true - in afterValidate(), I verify that the new entered start and end do not overlap with existing records - in beforeSave(), I verify the combination entered by the user, the goal being to calculate a duration My problem is that even if the user enters a wrong format for a field, Cake still run afterValidate(), causing problems in my queries, before I can return false to abort the save. Now I'm not really sure why cake runs afterValidate() if validation fails. Is there something I missed ? TIA for your assistance, Charles -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: callback succession / why afterValidate() if validation fails
Thx José for the explanation. But how do I test if the validation has failed ? Something like this is not really nice... function afterValidate($options) { if (!empty($this-validationErrors)) { return false; } } any better idea ? TIA, Charles On 26.05.14 10:16, José Lorenzo wrote: It is just the way it works. There are equal amount of reasons for wanting the callback to be run after the validation has failed, can you not change the logic to check if there are any validation errors and not run the rest of the method? On Monday, May 26, 2014 10:06:50 AM UTC+2, cbueche wrote: Dear Bakers, I have an app under CakePHP 2.5.1. I'm not sure to understand how the callback succession is supposed to work, eg if the validation fails, there is IMHO no reason to run afterValidate() ? But it does run indeed. What I'm trying to do: my form has 7 entry fields. The ones I have issues with are start_time, end_time and duration. The user might enter a combination of them, eg - start end - start duration - duration end - only duration (at the end, I only care about durations) My strategy for saving the data is - have a validation for the fields, eg to get the right time format (HH:MM) or duration, but with 'required' = false and 'allowEmpty' = true - in afterValidate(), I verify that the new entered start and end do not overlap with existing records - in beforeSave(), I verify the combination entered by the user, the goal being to calculate a duration My problem is that even if the user enters a wrong format for a field, Cake still run afterValidate(), causing problems in my queries, before I can return false to abort the save. Now I'm not really sure why cake runs afterValidate() if validation fails. Is there something I missed ? TIA for your assistance, Charles -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: V3.0 Custom validation messages
Tarique, I recently pushed some changes to the validation. You can now do: $validator-allowEmpty('my_field', false, 'My Custom message'); This deprecates the use of the 'notEmpty' rule. On Friday, March 14, 2014 12:55:58 PM UTC+1, Dr. Tarique Sani wrote: Thanks a lot José, would be interesting to compare what you do with what I was going to do :) Cheers Tarique On Fri, Mar 14, 2014 at 3:07 PM, José Lorenzo jose...@gmail.comjavascript: wrote: Tarique, I can confirm the problem. It is actually an overlook on how the validation system works now I will implementing a solution and providing documentation for it soon. On Friday, March 14, 2014 10:10:18 AM UTC+1, José Lorenzo wrote: Sure, I think github is a better place to track this problem On Friday, March 14, 2014 7:56:40 AM UTC+1, Dr. Tarique Sani wrote: Another strange thing. If I use an Entity class written in a file then at least the validation works but if I try the following in the controller $article = new Cake\ORM\Entity; $article-accessible('*', true); $article = $this-Articles-patchEntity($article, $this-request-data); Validation is completely skipped. I traced it till the _addValidatorProps in http://api.cakephp.org/3.0/ source-class-Cake.Validation.ValidationRule.html#171-190 and then ran out of time... Should I file this on github? Cheers Tarique On Fri, Mar 14, 2014 at 8:46 AM, Dr. Tarique Sani tariq...@gmail.comwrote: Hi, Wonder if you had the time to look into why custom error messages don't get populated? http://bin.cakephp.org/saved/120670 has my complete Table class The controller is more or less like you suggested in http://bin.cakephp.org/saved/120567 Cheers Tarique On Thu, Mar 13, 2014 at 1:56 PM, José Lorenzo jose...@gmail.comwrote: It could be a bug. I'm going to check that out in a bit. To avoid the strict warning you need: use Cake\Validation\Validator; class ArticlesTable extends Table { public function validationDefault(Validator $validator) { ... On Thursday, March 13, 2014 6:07:47 AM UTC+1, Dr. Tarique Sani wrote: My AtriclesTable has public function validationDefault($validator) { $validator -add('title', 'not-Empty', [ 'rule' = 'notEmpty', 'message' = 'You need to provide a title', ]) -add('body', 'not-Empty', [ 'rule' = 'notEmpty', 'message' = 'A body is required' ]); return $validator; } When I try to save an article entity the validation runs fine but I am only getting the default in the ArticleEntity 'errors' = [ 'title' = [ (int) 0 = 'This field cannot be left empty' ], 'body' = [ (int) 0 = 'This field cannot be left empty' ] ] Additionally there is a warning Strict (2048): Declaration of App\Model\Table\ArticlesTable::validationDefault() should be compatible with Cake\ORM\Table::validationDefault(Cake\Validation\Validator $validator) [APP/Model/Table/ArticlesTable.php, line 7] What additional steps are needed to fix this? Cheers Tarique -- = The Conference Schedule Creator : http://shdlr.com PHP for E-Biz : http://sanisoft.com = -- 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 cake-php+u...@googlegroups.com. To post to this group, send email to cake...@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout. -- = The Conference Schedule Creator : http://shdlr.com PHP for E-Biz : http://sanisoft.com = -- = The Conference Schedule Creator : http://shdlr.com PHP for E-Biz : http://sanisoft.com = -- 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 cake-php+u...@googlegroups.com javascript:. To post to this group, send email to cake...@googlegroups.comjavascript: . Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout. -- = The Conference Schedule Creator : http://shdlr.com
Re: V3.0 Custom validation messages
Cool - that works. Now trying out for other rules Also instead having to write echo $this-Form-input('title',['required' = false] ); keep the required to false by default OR have a javascript helper automatically output and attach custom error messages to fields. The second option will be really cool to have. Thanks for your efforts Regards Tarique On Tue, Mar 18, 2014 at 7:10 PM, José Lorenzo jose@gmail.com wrote: Tarique, I recently pushed some changes to the validation. You can now do: $validator-allowEmpty('my_field', false, 'My Custom message'); This deprecates the use of the 'notEmpty' rule. On Friday, March 14, 2014 12:55:58 PM UTC+1, Dr. Tarique Sani wrote: Thanks a lot José, would be interesting to compare what you do with what I was going to do :) Cheers Tarique On Fri, Mar 14, 2014 at 3:07 PM, José Lorenzo jose...@gmail.com wrote: Tarique, I can confirm the problem. It is actually an overlook on how the validation system works now I will implementing a solution and providing documentation for it soon. On Friday, March 14, 2014 10:10:18 AM UTC+1, José Lorenzo wrote: Sure, I think github is a better place to track this problem On Friday, March 14, 2014 7:56:40 AM UTC+1, Dr. Tarique Sani wrote: Another strange thing. If I use an Entity class written in a file then at least the validation works but if I try the following in the controller $article = new Cake\ORM\Entity; $article-accessible('*', true); $article = $this-Articles-patchEntity($article, $this-request-data); Validation is completely skipped. I traced it till the _addValidatorProps in http://api.cakephp.org/3.0/so urce-class-Cake.Validation.ValidationRule.html#171-190 and then ran out of time... Should I file this on github? Cheers Tarique On Fri, Mar 14, 2014 at 8:46 AM, Dr. Tarique Sani tariq...@gmail.comwrote: Hi, Wonder if you had the time to look into why custom error messages don't get populated? http://bin.cakephp.org/saved/120670 has my complete Table class The controller is more or less like you suggested in http://bin.cakephp.org/saved/120567 Cheers Tarique On Thu, Mar 13, 2014 at 1:56 PM, José Lorenzo jose...@gmail.comwrote: It could be a bug. I'm going to check that out in a bit. To avoid the strict warning you need: use Cake\Validation\Validator; class ArticlesTable extends Table { public function validationDefault(Validator $validator) { ... On Thursday, March 13, 2014 6:07:47 AM UTC+1, Dr. Tarique Sani wrote: My AtriclesTable has public function validationDefault($validator) { $validator -add('title', 'not-Empty', [ 'rule' = 'notEmpty', 'message' = 'You need to provide a title', ]) -add('body', 'not-Empty', [ 'rule' = 'notEmpty', 'message' = 'A body is required' ]); return $validator; } When I try to save an article entity the validation runs fine but I am only getting the default in the ArticleEntity 'errors' = [ 'title' = [ (int) 0 = 'This field cannot be left empty' ], 'body' = [ (int) 0 = 'This field cannot be left empty' ] ] Additionally there is a warning Strict (2048): Declaration of App\Model\Table\ArticlesTable::validationDefault() should be compatible with Cake\ORM\Table::validationDefault(Cake\Validation\Validator $validator) [APP/Model/Table/ArticlesTable.php, line 7] What additional steps are needed to fix this? Cheers Tarique -- = The Conference Schedule Creator : http://shdlr.com PHP for E-Biz : http://sanisoft.com = -- 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 cake-php+u...@googlegroups.com. To post to this group, send email to cake...@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout. -- = The Conference Schedule Creator : http://shdlr.com PHP for E-Biz : http://sanisoft.com = -- = The Conference Schedule Creator : http://shdlr.com PHP for E-Biz : http://sanisoft.com = -- 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
Re: V3.0 Custom validation messages
Another strange thing. If I use an Entity class written in a file then at least the validation works but if I try the following in the controller $article = new Cake\ORM\Entity; $article-accessible('*', true); $article = $this-Articles-patchEntity($article, $this-request-data); Validation is completely skipped. I traced it till the _addValidatorProps in http://api.cakephp.org/3.0/source-class-Cake.Validation.ValidationRule.html#171-190and then ran out of time... Should I file this on github? Cheers Tarique On Fri, Mar 14, 2014 at 8:46 AM, Dr. Tarique Sani tariques...@gmail.comwrote: Hi, Wonder if you had the time to look into why custom error messages don't get populated? http://bin.cakephp.org/saved/120670 has my complete Table class The controller is more or less like you suggested in http://bin.cakephp.org/saved/120567 Cheers Tarique On Thu, Mar 13, 2014 at 1:56 PM, José Lorenzo jose@gmail.com wrote: It could be a bug. I'm going to check that out in a bit. To avoid the strict warning you need: use Cake\Validation\Validator; class ArticlesTable extends Table { public function validationDefault(Validator $validator) { ... On Thursday, March 13, 2014 6:07:47 AM UTC+1, Dr. Tarique Sani wrote: My AtriclesTable has public function validationDefault($validator) { $validator -add('title', 'not-Empty', [ 'rule' = 'notEmpty', 'message' = 'You need to provide a title', ]) -add('body', 'not-Empty', [ 'rule' = 'notEmpty', 'message' = 'A body is required' ]); return $validator; } When I try to save an article entity the validation runs fine but I am only getting the default in the ArticleEntity 'errors' = [ 'title' = [ (int) 0 = 'This field cannot be left empty' ], 'body' = [ (int) 0 = 'This field cannot be left empty' ] ] Additionally there is a warning Strict (2048): Declaration of App\Model\Table\ArticlesTable::validationDefault() should be compatible with Cake\ORM\Table::validationDefault(Cake\Validation\Validator $validator) [APP/Model/Table/ArticlesTable.php, line 7] What additional steps are needed to fix this? Cheers Tarique -- = The Conference Schedule Creator : http://shdlr.com PHP for E-Biz : http://sanisoft.com = -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout. -- = The Conference Schedule Creator : http://shdlr.com PHP for E-Biz : http://sanisoft.com = -- = The Conference Schedule Creator : http://shdlr.com PHP for E-Biz : http://sanisoft.com = -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
Re: V3.0 Custom validation messages
Sure, I think github is a better place to track this problem On Friday, March 14, 2014 7:56:40 AM UTC+1, Dr. Tarique Sani wrote: Another strange thing. If I use an Entity class written in a file then at least the validation works but if I try the following in the controller $article = new Cake\ORM\Entity; $article-accessible('*', true); $article = $this-Articles-patchEntity($article, $this-request-data); Validation is completely skipped. I traced it till the _addValidatorProps in http://api.cakephp.org/3.0/source-class-Cake.Validation.ValidationRule.html#171-190and then ran out of time... Should I file this on github? Cheers Tarique On Fri, Mar 14, 2014 at 8:46 AM, Dr. Tarique Sani tariq...@gmail.comjavascript: wrote: Hi, Wonder if you had the time to look into why custom error messages don't get populated? http://bin.cakephp.org/saved/120670 has my complete Table class The controller is more or less like you suggested in http://bin.cakephp.org/saved/120567 Cheers Tarique On Thu, Mar 13, 2014 at 1:56 PM, José Lorenzo jose...@gmail.comjavascript: wrote: It could be a bug. I'm going to check that out in a bit. To avoid the strict warning you need: use Cake\Validation\Validator; class ArticlesTable extends Table { public function validationDefault(Validator $validator) { ... On Thursday, March 13, 2014 6:07:47 AM UTC+1, Dr. Tarique Sani wrote: My AtriclesTable has public function validationDefault($validator) { $validator -add('title', 'not-Empty', [ 'rule' = 'notEmpty', 'message' = 'You need to provide a title', ]) -add('body', 'not-Empty', [ 'rule' = 'notEmpty', 'message' = 'A body is required' ]); return $validator; } When I try to save an article entity the validation runs fine but I am only getting the default in the ArticleEntity 'errors' = [ 'title' = [ (int) 0 = 'This field cannot be left empty' ], 'body' = [ (int) 0 = 'This field cannot be left empty' ] ] Additionally there is a warning Strict (2048): Declaration of App\Model\Table\ArticlesTable::validationDefault() should be compatible with Cake\ORM\Table::validationDefault(Cake\Validation\Validator $validator) [APP/Model/Table/ArticlesTable.php, line 7] What additional steps are needed to fix this? Cheers Tarique -- = The Conference Schedule Creator : http://shdlr.com PHP for E-Biz : http://sanisoft.com = -- 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 cake-php+u...@googlegroups.com javascript:. To post to this group, send email to cake...@googlegroups.comjavascript: . Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout. -- = The Conference Schedule Creator : http://shdlr.com PHP for E-Biz : http://sanisoft.com = -- = The Conference Schedule Creator : http://shdlr.com PHP for E-Biz : http://sanisoft.com = -- 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 cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.