# |
Jan 22nd 2017, 19:15 |
siran |
slackebot: where do i make the gist? |
# |
Jan 22nd 2017, 19:13 |
bigdaddygee |
Can you past the code on gist ? |
# |
Jan 22nd 2017, 19:10 |
siran |
slackebot: so apparently the $data i'm saving is the same as the record, so the only thing changin is the 'modified' field |
# |
Jan 22nd 2017, 19:09 |
siran |
slackebot: i do a find to see if the record exists, if it exists I patchEntity() with an array of values (that may or may not be the same as the one already in the table); if it doesn't exist I do a newEntity() |
# |
Jan 22nd 2017, 19:09 |
siran |
i do a find to see if the record exists, if it exists I patchEntity() with an array of values (that may or may not be the same as the one already in the table); if it doesn't exist I do a newEntity() |
# |
Jan 22nd 2017, 19:08 |
bigdaddygee |
I mean, in your code, do you know where this update is fired ? |
# |
Jan 22nd 2017, 19:07 |
siran |
slackebot: I get: UPDATE mytable SET modified = '2017-01-22 18:57:35' WHERE id = '58062825' |
# |
Jan 22nd 2017, 19:07 |
bigdaddygee |
Oh, and what's your save procedure right now ? (gist) |
# |
Jan 22nd 2017, 19:06 |
siran |
slackebot: apparently im invoking save() on an entity without changes... so when I look the generated SQL (using debugkit) it is only updating the table's modified field |
# |
Jan 22nd 2017, 19:05 |
bigdaddygee |
siran, can you explain a little bit more ? |
# |
Jan 22nd 2017, 19:05 |
siran |
how can I avoid doing **updates where the only thing changing is the 'modified' field ? |
# |
Jan 22nd 2017, 19:04 |
siran |
how can I avoid doing updated where the only thing changing is the 'modified' field ? |
# |
Jan 22nd 2017, 19:03 |
siran |
hi y'all ! |
# |
Jan 22nd 2017, 18:56 |
bigdaddygee |
admad I trying to use concat right now I just found it, is it worth to try this way ? |
# |
Jan 22nd 2017, 18:55 |
admad |
@bigdaddygee https://book.cakephp.org/3.0/en/orm/query-builder.html#using-sql-functions |
# |
Jan 22nd 2017, 18:54 |
bigdaddygee |
I also tried $query = $this->Ads->find('all'); $query->where(['created >=' => $query->func()->now() .' - INTERVAL 1 HOUR'])->toArray(); but since i'm trying to concatenate a function and a string I receive an error... :| |
# |
Jan 22nd 2017, 18:51 |
bigdaddygee |
Hi everybody, I'm trying to use MySQL function and constant in CakePHP ORM and i'm not exactly sure how to do it... Target SQL : SELECT * FROM ads WHERE created >= (NOW() - INTERVAL 1 hour) Actualy in CakePHP : $this->Ads->find('all')->where(['created >=' => Time::now() .' - INTERVAL 1 HOUR'])->toArray(); |
# |
Jan 22nd 2017, 17:55 |
hytromo |
Thanks guys, this `$visitHours = $this->ProfessorVisitHours->find()->where(['professor_id' => $id])->groupBy(function($prof){ return $prof->day; })->toArray();` worked |
# |
Jan 22nd 2017, 17:49 |
thinkingmedia |
that stuff is a pain. When it doesn't work it's just an empty result. |
# |
Jan 22nd 2017, 17:48 |
hmic |
good call! |
# |
Jan 22nd 2017, 17:48 |
hmic |
;-) |
# |
Jan 22nd 2017, 17:48 |
thinkingmedia |
I would just debug what `groupBy` is getting. ``` $this->ProfessorVisitHours->find()->where(['professor_id' => $id])->groupBy(function($prof){ dd($prof); }); ``` |
# |
Jan 22nd 2017, 17:48 |
hmic |
sure, you need to supply the right path to group by to the collection, so check the data returned first and add the correct path to the groupBy, like thinkingmedia suggests |
# |
Jan 22nd 2017, 17:47 |
thinkingmedia |
the groupBy will execute the query |
# |
Jan 22nd 2017, 17:47 |
hmic |
like: find()->where()->all()->groupBy() |
# |
Jan 22nd 2017, 17:46 |
hmic |
hytromo: maybe you need to execute the query first, then apply the collection function |
# |
Jan 22nd 2017, 17:46 |
thinkingmedia |
try including the alias `->groupBy('ProfessorVisitorHours.day')` |
# |
Jan 22nd 2017, 17:45 |
hytromo |
thinkingmedia, I know, I am talking about Collection's groupBy, not query's group ( https://book.cakephp.org/3.0/en/orm/query-builder.html#aggregates-group-and-having> VS <https://book.cakephp.org/3.0/en/core-libraries/collections.html#grouping-and-counting ) |
# |
Jan 22nd 2017, 17:44 |
thinkingmedia |
Group by SQL is not the same thing as group the results. |
# |
Jan 22nd 2017, 17:44 |
hytromo |
I also tried converting toArray() first and then passing it to a normal Collection object, and still it didn't work. Ideas? |
# |
Jan 22nd 2017, 17:43 |
hytromo |
I fetch some rows from the db and I want to group the results by the field 'day' (int from 0 to 6 for day of week)). `$this->ProfessorVisitHours->find()->where(['professor_id' => $id])->groupBy('day')` doesn't work at all. |
# |
Jan 22nd 2017, 17:33 |
al_x_mq |
i made it work. thanks |
# |
Jan 22nd 2017, 17:33 |
hmic |
"If a Table contains a foreign key, it belongs to the other Table." |
# |
Jan 22nd 2017, 17:33 |
hmic |
al_x_mq: from the book: https://book.cakephp.org/3.0/en/orm/associations.html#belongsto-associations |
# |
Jan 22nd 2017, 17:15 |
al_x_mq |
is this belongsTo or hasOne? |
# |
Jan 22nd 2017, 17:15 |
al_x_mq |
in schedules fields home and guest |
# |
Jan 22nd 2017, 17:14 |
al_x_mq |
table schedules |
# |
Jan 22nd 2017, 17:14 |
al_x_mq |
table of teams |
# |
Jan 22nd 2017, 17:14 |
al_x_mq |
want to build a game schedule |
# |
Jan 22nd 2017, 17:14 |
al_x_mq |
example. |
# |
Jan 22nd 2017, 17:14 |
al_x_mq |
how can i connect 2 tables, over a field, that is not fitting the convention? |