# |
Jun 1st 2021, 21:13 |
tyler.adam.lazenby |
```public function testAddToExisting(): void { $data = ['account_id' => 1]; $this->enableCsrfToken(); $this->post('/accounts/add-to-existing/1', $data); $this->assertResponseOk(); $this->assertResponseNotEmpty(); $this->assertResponseContains('first_name: John'); }``` |
# |
Jun 1st 2021, 21:13 |
tyler.adam.lazenby |
Let me make my question more specific. If I expect to json_encode a user entity with a first_name property valued as "john", how would I unit test that? |
# |
Jun 1st 2021, 21:09 |
greg138 |
I've done that. This is what `removeBehavior` is for. :) |
# |
Jun 1st 2021, 21:08 |
kevin.pfeifer |
sorry, haven’t dealt with that till now. Can’t answer that right now ,:) |
# |
Jun 1st 2021, 21:06 |
thomas465 |
tags is linked to products with a `through` class, that class is also defined. again, everything works, but i’d like it not update the modified field :) |
# |
Jun 1st 2021, 21:04 |
thomas465 |
but tag_id = 10 will also have it’s modified date updated (TimeStampBehavoir) |
# |
Jun 1st 2021, 21:03 |
thomas465 |
and its creating a tag_id = 10, product_id = 99 in the link table along with the comment (and other cols for the join table) |
# |
Jun 1st 2021, 21:03 |
tyler.adam.lazenby |
On unit tests, I want to test to see if the response contains a new account id, since I return it in application/json form. How can I do that? |
# |
Jun 1st 2021, 21:02 |
thomas465 |
well, here the tag id is 10 |
# |
Jun 1st 2021, 21:02 |
kevin.pfeifer |
ah ok your junction table has an id |
# |
Jun 1st 2021, 21:01 |
thomas465 |
https://book.cakephp.org/4/en/orm/saving-data.html#saving-additional-data-to-the-join-table |
# |
Jun 1st 2021, 21:01 |
thomas465 |
it looks like the example in the docs ``` 'tags' => [ [ 'id' => 10, '_joinData' => [ 'comment' => '123123' ] ], // Other courses.``` |
# |
Jun 1st 2021, 20:57 |
kevin.pfeifer |
and it does look like that? ```$entity['tags'] = [ '_ids' => [ '23' ] ];``` where 23 is one valid tag id |
# |
Jun 1st 2021, 20:52 |
thomas465 |
(the import script is just doing pathEntity on handcrafted arrays so i would not think it makes a difference) |
# |
Jun 1st 2021, 20:51 |
thomas465 |
let me give it a try |
# |
Jun 1st 2021, 20:47 |
kevin.pfeifer |
does it also happen when you add that entry “normally” via your template or does it just happen with your import script |
# |
Jun 1st 2021, 20:45 |
thomas465 |
My issue is that when running a import/sync it keeps touching the same 5 tags resulting in deadlock errors after a while |
# |
Jun 1st 2021, 20:45 |
thomas465 |
(ok that was terrible english) I’m creating a new link in the link table, (with some extra joindata) all that works fine, but it updates the modified date of the `tag` i’m linking to, is that expected behaviour ? |
# |
Jun 1st 2021, 20:43 |
thomas465 |
Question when saving belongsToMany() association with _joinData … is it expected that the modified date of the target table? So if `products -> products_tags -> tags` it updates the modifed col of `tags` |
# |
Jun 1st 2021, 20:43 |
kevin.pfeifer |
well you get the parsed json data via ```$data = $this->getRequest()->getData()``` if you want the raw body you could try look at your $_POST Variable (if you sent your data via POST) |
# |
Jun 1st 2021, 20:06 |
rightscoreanalysis |
is $this->request->input() the best way to read raw json body |
# |
Jun 1st 2021, 19:10 |
tyler.adam.lazenby |
right, that is what I just did now, but the issue is that I have to add that to the table class itself as a method and I can reuse that |
# |
Jun 1st 2021, 19:05 |
richard |
makes more sense to add something like that to $validator |
# |
Jun 1st 2021, 19:04 |
richard |
@tyler.adam.lazenby you wouldn’t see the error until you attempt a save on buildRules |
# |
Jun 1st 2021, 18:34 |
kevin.pfeifer |
is it the developer mentioned in the comments at the start of the style.css in the theme? |
# |
Jun 1st 2021, 18:33 |
jonathan086 |
Understood Kevin! This is frustrating when I am directed to the wrong avenue. |
# |
Jun 1st 2021, 18:28 |
kevin.pfeifer |
Just FYI: CakePHP is a complete MVC Framework in which you build whole websites with it, not "just" some little library you use to build themes with |
# |
Jun 1st 2021, 18:25 |
jonathan086 |
I am reaching back out to the developer Kevin. Thanks for your time and appreciate it. |
# |
Jun 1st 2021, 18:17 |
kevin.pfeifer |
+ i find it very suspect, that a theme developer tells you (a customer) to update a "library" the theme developer used to build the theme (which I still doubt) This should in my opinion always be the job of the theme developer, not the customer |
# |
Jun 1st 2021, 18:11 |
kevin.pfeifer |
do you have a composer.json inside your theme |
# |
Jun 1st 2021, 18:10 |
jonathan086 |
That is the reason why I contacted you. |
# |
Jun 1st 2021, 18:10 |
jonathan086 |
Thanks Kevin! The developer told me to update the cake PHP. |
# |
Jun 1st 2021, 17:47 |
kevin.pfeifer |
@jonathan086 your errors are related to your Wordpress Theme "Nova" not being compatible with your new PHP Version. So upgrade your Theme (if possible without changes, not always the case) But generally this is a CakePHP support channel, not a Wordpress Support channel and your error currently has nothing to do with cakephp |
# |
Jun 1st 2021, 17:41 |
jonathan086 |
After updating the value of String to CakeText, I am getting this error: *Parse error*: syntax error, unexpected ‘new’ (T_NEW) in */var/www/vhosts/scainc.net/httpdocs/wp-content/themes/nova/app/libs/inflector.php* on line *300* |
# |
Jun 1st 2021, 17:39 |
jonathan086 |
*Fatal error*: Cannot use ‘String’ as class name as it is reserved in */var/www/vhosts/scainc.net/httpdocs/wp-content/themes/nova/app/libs/string.php* on line *28* |
# |
Jun 1st 2021, 17:39 |
jonathan086 |
https://www.scainc.net/ |
# |
Jun 1st 2021, 17:39 |
jonathan086 |
I am in need of help. I used a wordpress theme and its framework was built on CakePHP. Upon upgrading wordpress to the latest version, I had to move the PHP version to 7.*. After updating, I am getting the following error: |
# |
Jun 1st 2021, 17:24 |
tyler.adam.lazenby |
I just tried with __invoke as returning false, and it is still doing that |
# |
Jun 1st 2021, 17:18 |
tyler.adam.lazenby |
```$rules->add(new NotHasOneAsFirstChar('phone', 'You cannot use 1 as the first character of a phone number.'), 'notHasOneAsFirstCharacter');``` |
# |
Jun 1st 2021, 17:18 |
slackebot |
return $value[0] != "1"; } protected function cleanValue(string $value): array|string|null { $pattern = "/[^0-9]+/"; $replacement = ""; return preg_replace($pattern, $replacement, $value); } }``` |
# |
Jun 1st 2021, 17:18 |
slackebot |
function __construct(string $field, ?string $message = null) { $this->_fields = $field; if ($message) { $this->message = $message; } else { $this->message = __("That value is invalid."); } } public function __invoke(EntityInterface $entity, array $options): bool { $value = $entity->get($this->_fields); $value = $this->cleanValue($value); |