Log message #4266023

# At Username Text
# Jun 22nd 2021, 08:50 steinkel `if ($person_name) { $query->where(...) }` you can check if the $person_name is null in your code and decide which condition to apply in the where
# Jun 22nd 2021, 08:46 etibor ```COALESCE``` ?
# Jun 22nd 2021, 08:44 etibor do you have any suggest?
# Jun 22nd 2021, 08:43 etibor and search for e-mail address, return the record with exact e-mail and name is null(not the other fields)
# Jun 22nd 2021, 08:42 etibor just need a solution when name is null but the email is not
# Jun 22nd 2021, 08:42 etibor yes i checked this in mysql its works exactly like this
# Jun 22nd 2021, 08:35 conehead So what are you expecting?
# Jun 22nd 2021, 08:16 etibor but in this case the rest of the filter fields does not work and return all of the records with name NULL
# Jun 22nd 2021, 08:15 etibor i tried to combine with following: `->Where(['OR'=>[['People.name IS NULL'],['People.name LIKE'=>'%'.($person_name).'%']]])`
# Jun 22nd 2021, 08:14 etibor sometimes People's name is null in my db
# Jun 22nd 2021, 08:14 etibor i have tiny issue with using find with LIKE'=>'%'.$name.'%' because it does not work when the value is NULL `->Where(['People.name LIKE'=>'%'.($person_name).'%'])`
# Jun 22nd 2021, 08:12 etibor hello everyone
# Jun 22nd 2021, 07:41 kevin.pfeifer hreflang link tags improve your SEO rating https://webmasters.stackexchange.com/questions/105998/what-is-the-difference-between-html-lang-tag-and-html-hreflang-tag the html lang value is usually only there to indicate the current language of the DOM
# Jun 22nd 2021, 06:56 slackebot1 Just had problems with auto correction when switching languages and was wondering if this could have anything to do with it
# Jun 22nd 2021, 06:56 conehead @angelxmoreno yeh, thanks I read that already, but it somehow seemed like it does not make too much of a difference if its set to en or any other language. I know it would be a tiny "tool", but I resolved it with the following line now: ```<html lang="<?= substr(Configure::read('App.defaultLocale', 'en_EN'), 0, 2) ?>">``` And I have to admit although my mother language is german, I have never really used the lang tag as well.
# Jun 22nd 2021, 06:20 angelxmoreno tbh i never set it in the 21 years i’ve been coding even back in the html4 days. my audience and language has always been the US and english..boring i know
# Jun 22nd 2021, 06:18 angelxmoreno @conehead why it matters --> https://www.w3.org/International/questions/qa-html-language-declarations#langvalues what “tools” ? would you like to see?
# Jun 22nd 2021, 05:32 conehead Is there actually a need/advantage to change "<html lang="en">" to the correct language? Does ist affect the page in many ways? Was just wondering cause Cake does not seem to have any tools for this?
# Jun 22nd 2021, 05:32 conehead Good morning everyone!
# Jun 21st 2021, 19:22 kevin.pfeifer @vinicius.big I would create a global `var MY_I18N` variable an populate it with the translations you need
# Jun 21st 2021, 19:19 kevin.pfeifer what :point_up: said :) I though you had other variables outside the anonymous function which you need but accessing variables inside the class/object (you are in a Table object space here) can be done via $this without passing the via the `use`
# Jun 21st 2021, 19:19 vinicius.big hey folks! What is your suggestion to translate JS strings on Cake? There is a lot of JS libraries for this but, I would like to see your experience on it
# Jun 21st 2021, 19:12 greg138 As for what do do in the function, do everything that needs to be "all or nothing" saved.
# Jun 21st 2021, 19:11 greg138 You should be able to access `$this` in that function without any issue, so need real need to pass in the model either (you can use `$this->Tags`).
# Jun 21st 2021, 19:09 alamnaryab yes that was the issue even without return false it worked now next step @kevin.pfeifer Should I pass $this->request->getData() to this anonymous function or make separate function for each model e.g next I have to save record in notification table saying "Logged-in-user has saved new tag at id = newly-saved-Tag->id"
# Jun 21st 2021, 18:59 greg138 Any chance you're using a database that just doesn't support rollback? The MyISAM engine in MySQL, for example, doesn't.
# Jun 21st 2021, 18:48 alamnaryab still redirected to index and record inserted ``` $entity = $this->Tags->patchEntity($tag, $this->request->getData()); $model = $this->Tags; $this->Tags->getConnection()->transactional(function () use ($model, $entity) { $model->save($entity, ['atomic' => false]); return false; }); return $this->redirect(['action' => 'index']);```
# Jun 21st 2021, 18:46 greg138 Try returning `false` from inside your "transactional" function.
# Jun 21st 2021, 18:45 alamnaryab I tried below code, I have not written `commit` still it is saved in table ``` $entity = $this->Tags->patchEntity($tag, $this->request->getData()); $model = $this->Tags; $this->Tags->getConnection()->transactional(function () use ($model, $entity) { $model->save($entity, ['atomic' => false]); }); return $this->redirect(['action' => 'index']);```
# Jun 21st 2021, 18:39 greg138 Doesn't the save code check that it's not already in a transaction before starting a transaction?
# Jun 21st 2021, 18:21 kevin.pfeifer https://stackoverflow.com/questions/41896991/why-is-the-automatic-transaction-option-in-cakephp-is-called-atomic/41898090
# Jun 21st 2021, 18:21 kevin.pfeifer ```->save($entity, ['atomic' => false]);```
# Jun 21st 2021, 18:21 kevin.pfeifer is the term that says that it shouldn't have a transaction
# Jun 21st 2021, 18:21 kevin.pfeifer ```'atomic' => false```
# Jun 21st 2021, 18:18 alamnaryab I got this `use` but I am not getting how can I convert my code to achieve transactions as you also said `->save()` already has its own `commit`
# Jun 21st 2021, 18:10 kevin.pfeifer so everything you expect inside your function needs to be passed via the `use` at the end of the first line, otherwise you don't have access to these variables
# Jun 21st 2021, 18:09 kevin.pfeifer basically ```$result = 0; $one = function() { var_dump($result); }; $two = function() use ($result) { var_dump($result); }; $three = function() use (and$result) { var_dump($result); }; $result++; $one(); // outputs NULL: $result is not in scope $two(); // outputs int(0): $result was copied $three(); // outputs int(1)```
# Jun 21st 2021, 18:07 kevin.pfeifer they are called php anonymous functions https://www.php.net/manual/en/functions.anonymous.php
# Jun 21st 2021, 18:07 alamnaryab in your second last message you said "need to pass inside via `use`"
# Jun 21st 2021, 18:07 kevin.pfeifer yes, thats why you would have to wrap all those ->saveOrFail() inside the ->transactional();
# Jun 21st 2021, 18:04 alamnaryab `->saveOrFail()` will also revert that entity only not all those which saved successfully before it in same process