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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.