# |
Feb 3rd 2018, 17:32 |
sayed |
Any ideas are welcome :slightly_smiling_face: ! |
# |
Feb 3rd 2018, 17:32 |
slackebot |
return $this->error($e, !empty($this->entity) ? $this->entity->getErrors() : []); } }``` |
# |
Feb 3rd 2018, 17:32 |
sayed |
``` public function add() { try { $this->entity = $this->items->newEntity(); $this->entity = $this->items->patchEntity($this->entity, $this->getData()); if (!$this->items->save($this->entity)) { throw new Exception('The ' . $this->name . ' could not be saved. Please, try again.'); } $this->set('item', $this->entity); } catch (Exception $e) { |
# |
Feb 3rd 2018, 17:32 |
sayed |
I am patching the entity just based on the requested data, nothing special going on there. |
# |
Feb 3rd 2018, 17:27 |
sayed |
https://gist.github.com/SayedShahidi/70ea73a2f02c088ddbfc64673ae380e1 |
# |
Feb 3rd 2018, 17:25 |
sayed |
https://gist.github.com/SayedShahidi/5be6b8ce4acc29750e7685d7ec7b08bb |
# |
Feb 3rd 2018, 17:24 |
hmic |
!tell sayed about gist |
# |
Feb 3rd 2018, 17:24 |
sayed |
``` -- auto-generated definition CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, guid VARCHAR(255) NOT NULL, emailadres VARCHAR(255) NOT NULL, CONSTRAINT guid UNIQUE (guid), CONSTRAINT emailadres UNIQUE (emailadres) ) ENGINE = InnoDB; ``` |
# |
Feb 3rd 2018, 17:21 |
sayed |
Sure, just a sec |
# |
Feb 3rd 2018, 17:20 |
sayed |
?? |
# |
Feb 3rd 2018, 17:19 |
hmic |
provide the data by different means |
# |
Feb 3rd 2018, 17:19 |
hmic |
i'm not on slack |
# |
Feb 3rd 2018, 17:18 |
hmic |
!fail |
# |
Feb 3rd 2018, 17:18 |
sayed |
kinda strange ,:) |
# |
Feb 3rd 2018, 17:18 |
sayed |
no |
# |
Feb 3rd 2018, 17:18 |
sayed |
File uploaded https://cakesf.slack.com/files/U8SE5F2NN/F949JJQ0N/screen_shot_2018-02-03_at_18.17.37.png / https://slack-files.com/T053DPNCM-F949JJQ0N-52f86cc5e9 |
# |
Feb 3rd 2018, 17:17 |
hmic |
is the guid setup as the primarykey for that table too? |
# |
Feb 3rd 2018, 17:17 |
sayed |
field |
# |
Feb 3rd 2018, 17:16 |
sayed |
and oww yeah unique also works on the emailadres |
# |
Feb 3rd 2018, 17:16 |
sayed |
``` public function buildRules(RulesChecker $rules) { $rules->add($rules->isUnique(['guid'])); $rules->add($rules->isUnique(['emailadres'])); return $rules; } ``` |
# |
Feb 3rd 2018, 17:16 |
sayed |
yes |
# |
Feb 3rd 2018, 17:16 |
hmic |
do you have rules setup too, for the validateunique to work? |
# |
Feb 3rd 2018, 17:16 |
sayed |
Any ideas ? |
# |
Feb 3rd 2018, 17:16 |
sayed |
but not for unique, it just goes through and mysql itself gives out an error, since the column is marked as unique |
# |
Feb 3rd 2018, 17:15 |
sayed |
and the thing that i really dont get is, if i for example leave the `guid` field empty, it does validates it as required |
# |
Feb 3rd 2018, 17:14 |
sayed |
but it passes through |
# |
Feb 3rd 2018, 17:14 |
sayed |
In my users table i am clearly checking the item with the validator |
# |
Feb 3rd 2018, 17:14 |
sayed |
``` $validator ->scalar('guid') ->maxLength('guid', 255) ->requirePresence('guid', 'create') ->notEmpty('guid') ->add('guid', 'unique', ['rule' => 'validateUnique', 'provider' => 'table']); ``` |
# |
Feb 3rd 2018, 17:13 |
sayed |
``` { "message": "SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry \u0027290b0b55-01fc-4c7e-a8b8-1234234\u0027 for key \u0027guid\u0027", "url": "\/api\/users\/add", "code": 500, "file": "\/Users\/sayedshahidi\/sites\/rendement\/vendor\/cakephp\/cakephp\/src\/Database\/Statement\/MysqlStatement.php", "line": 39 } ``` |
# |
Feb 3rd 2018, 17:13 |
sayed |
``` |
# |
Feb 3rd 2018, 17:12 |
sayed |
fields * |
# |
Feb 3rd 2018, 17:12 |
sayed |
It does works in the case of other fiels |
# |
Feb 3rd 2018, 17:11 |
hmic |
whats the error |
# |
Feb 3rd 2018, 17:11 |
sayed |
Hi guys, i have a problem with the validation process of an entity. For some reason the cakephp 3 validator passes through the validation process, and it is the mysql that gives out the error on save. |
# |
Feb 3rd 2018, 16:26 |
admad |
yup |
# |
Feb 3rd 2018, 16:20 |
hmic |
but i can add that to be pulled out of my provided config easily myself |
# |
Feb 3rd 2018, 16:19 |
hmic |
:-) |
# |
Feb 3rd 2018, 16:19 |
hmic |
as i try to just throw it in the mix, without writing *any* code for it to work as a backend |
# |
Feb 3rd 2018, 16:19 |
hmic |
i actually think thats a good feature, especially for crudview |
# |
Feb 3rd 2018, 16:03 |
admad |
thought about it but don't want to go about stuffing too much in global config |
# |
Feb 3rd 2018, 16:02 |
hmic |
can't specify it in the crud.php config even? :D |