# |
Aug 29th 2019, 13:33 |
neon1024 |
Anyone know if @lorenzo https://github.com/josegonzalez/cakephp-version plugins supports associations? Or if I’d need to hook the event and persist the associations manually |
# |
Aug 29th 2019, 13:29 |
slackebot2 |
!awesome |
# |
Aug 29th 2019, 13:29 |
slackebot2 |
Command sent from Slack by neon1024: |
# |
Aug 29th 2019, 13:29 |
neon1024 |
I need to add versioning to a stack in my application. Does anyone have a plugin for this? To detect changes across all associations and then duplicate with incremented version |
# |
Aug 29th 2019, 13:15 |
alexdd55976 |
Authentification with LDAP credentials through the Authentification Component did not work as expected... but a neat workaround helped me getting the result into Authentication Component for further validation :partyparrot: |
# |
Aug 29th 2019, 13:00 |
dereuromark |
jep jep, prg etc |
# |
Aug 29th 2019, 12:59 |
ricksaccous |
if it doesn't happen successfully they are on the same page but cake magic will allow the errors to show up |
# |
Aug 29th 2019, 12:59 |
ricksaccous |
basically i only redirect if the save happens successfully |
# |
Aug 29th 2019, 11:58 |
dereuromark |
The redirect is bad if you work with forms, as you lose the inputted data on form validation. Otherwise also redirecting would not be a too big issue if you want to go that way. |
# |
Aug 29th 2019, 11:43 |
davorminchorov |
ok an else statement without the redirect fixed the issue I had, thanks for the help! |
# |
Aug 29th 2019, 11:39 |
davorminchorov |
Ok so that's the difference compared to how I used to do it in the past projects with Laravel for example, where each action is a different controller method. So should i use an else statement in my case without redirecting? |
# |
Aug 29th 2019, 11:38 |
alexdd55976 |
actually its what is generated through bake on forms |
# |
Aug 29th 2019, 11:37 |
alexdd55976 |
this is pretty much standard |
# |
Aug 29th 2019, 11:36 |
davorminchorov |
Maybe it is because the same action is being used for GET and POST / PUT / DELETE actions |
# |
Aug 29th 2019, 11:34 |
alexdd55976 |
this seems kind of pointless to me |
# |
Aug 29th 2019, 11:33 |
davorminchorov |
that's why I try to redirect the user to the same page |
# |
Aug 29th 2019, 11:33 |
davorminchorov |
@alexdd55976 Yeah but I wanna stop the code from executing further instead of having an else statement |
# |
Aug 29th 2019, 11:25 |
alexdd55976 |
it seems that the user is not authenticated.. maybe there is some need of different wording.. at least for me it seems very confusing |
# |
Aug 29th 2019, 11:24 |
ndm |
*false |
# |
Aug 29th 2019, 11:24 |
ndm |
or that the identity is `fasle`-ish |
# |
Aug 29th 2019, 11:24 |
ndm |
It depends on where exactly the exception is thrown, if it's thrown from the component, then it means that the authentication middleware didn't run, because the `identity` attribute on the request is missing. |
# |
Aug 29th 2019, 11:22 |
alexdd55976 |
oh.. or does it mean: everything works, but user is not authenticated? |
# |
Aug 29th 2019, 11:21 |
alexdd55976 |
@ndm i do this ` $this->loadComponent("Authentication.Authentication");` but get the message `Authentication is required to continue` |
# |
Aug 29th 2019, 11:18 |
alexdd55976 |
so, actually you are already there |
# |
Aug 29th 2019, 11:18 |
slackebot2 |
self-containing. As mentioned, `$this->Authentication` refers to the authentication component, it's initialized via `Controller::loadComponent()`. https://book.cakephp.org/authentication/1.1/en/index.html#authentication-component |
# |
Aug 29th 2019, 11:18 |
ndm |
@alexdd55976 `$request` comes from wherever it is intended to come from depending on the context where your code runs, in a middleware it's passed to the `__invoke()` method, in controllers and views there's the `getRequest()` method, in components you can retrieve it via the the controller that the component is attached to... The examples in the documentation often rely a bit on a certain familiarity with the framework, and aren't neccesarily |
# |
Aug 29th 2019, 11:18 |
alexdd55976 |
if you do no submitting to a different action, you stay in that action |
# |
Aug 29th 2019, 11:16 |
davorminchorov |
hmm, that's a good point, did not think of it. What's a good way to get back on the same page? |
# |
Aug 29th 2019, 11:15 |
alexdd55976 |
why you redirect? isn't that clearing the variables? |
# |
Aug 29th 2019, 11:14 |
slackebot2 |
($numberOfValidationErrors > 0) { $this->set('transitionValidationErrors', $transitionValidationErrors); return $this->redirect($this->referer()); } ``` |
# |
Aug 29th 2019, 11:14 |
davorminchorov |
@alexdd55976 This is what I do: ``` $people = $this->Persons->newEntities($preparedTransitionsData); $people = $this->Persons->patchEntities($people, $preparedTransitionsData, [ 'validate' => 'add' ]); $numberOfValidationErrors = 0; $transitionValidationErrors = []; foreach($people as $key => $person) { $numberOfValidationErrors += count($person->getErrors()); $transitionValidationErrors[$key] = $person->getErrors(); } if |
# |
Aug 29th 2019, 11:09 |
alexdd55976 |
you can use this as a example |
# |
Aug 29th 2019, 11:08 |
alexdd55976 |
this is what i do with manuel validation |
# |
Aug 29th 2019, 11:08 |
slackebot2 |
'missing key: ends_time (format: HH:MM:SS)'); $errors = []; if ($validator->errors($this->request->getData()) != null) { $errors = array_merge($errors, $this->restructureValidationMessages($validator->errors($data))); } ``` |
# |
Aug 29th 2019, 11:08 |
slackebot2 |
->requirePresence('title', ['mode' => true], 'missing key: title') ->requirePresence('starts', ['mode' => true], 'missing key: starts (format: YYYY-MM-DD)') ->requirePresence('starts_time', ['mode' => true], 'missing key: starts_time (format: HH:MM:SS)') ->requirePresence('ends', ['mode' => true], 'missing key: ends (format: YYYY-MM-DD)') ->requirePresence('ends_time', ['mode' => true], |
# |
Aug 29th 2019, 11:08 |
slackebot2 |
'create', 'message' => 'missing key: eventtype_id', ], 'location' => [ 'mode' => 'create', 'message' => 'missing key: location' ] ]) ->numeric('eventtype_id') ->greaterThanOrEqual('longitude', 0, 'longitude must be 0 or greater') ->greaterThanOrEqual('latitude', 0, 'latitude must be 0 or greater') |
# |
Aug 29th 2019, 11:08 |
alexdd55976 |
@davorminchorov ``` $validator = new Validator(); $validator ->requirePresence('company_id', ['mode' => true], 'missing key: company_id') ->requirePresence('organization_id', ['mode' => true], 'missing key: organization_id') // ->requirePresence('user_id', ['mode' => true], 'missing key: user_id') ->requirePresence([ 'eventtype_id' => [ 'mode' => |
# |
Aug 29th 2019, 11:08 |
challgren |
try `$model = $this->Model->patchEntities(); $this->set('errors', $model->getErrors());` |
# |
Aug 29th 2019, 11:04 |
slackebot2 |
$errors)` but I had no luck, it showed up as null in the view so I couldn't display any data. |
# |
Aug 29th 2019, 11:04 |
davorminchorov |
Hi, I implemented form validation using `$this->Model->newEntitites()` and `$this->Model->patchEntities()` and now I want to display all of those errors in a list in the view if there are any errors. My forms do not use the form helper / plugin (`$this->Form`) which I believe that's done automatically if done by convention. Any ideas how can I implement that? I tried passing the array of errors to the view using `$this->set('errors', |
# |
Aug 29th 2019, 10:59 |
alexdd55976 |
the docu does not tell where its "constructed" its just used later ... know idea wher eit comes from |