# |
Feb 18th 2020, 19:08 |
FunkadelicRelic |
One interesting thing is that if I flip the where as mentioned, I seem to get backwards results, but that could just be my statement, I'll have a quick look. |
# |
Feb 18th 2020, 19:07 |
FunkadelicRelic |
Well that certainly looks better! |
# |
Feb 18th 2020, 19:03 |
FunkadelicRelic |
Ah good catch - I was still on toArray. I'll try now. |
# |
Feb 18th 2020, 19:01 |
ndm |
btw your `where()` array should be flipped, it should be like `where(['recommendation_group_id' => $data['recommendationgroup_id'])` |
# |
Feb 18th 2020, 19:00 |
challgren |
https://cakesf.herokuapp.com/ is the link to get an invite |
# |
Feb 18th 2020, 19:00 |
ndm |
Have you changed from using `all()`? |
# |
Feb 18th 2020, 18:58 |
FunkadelicRelic |
Slack sounds like a great idea! I get a new error on that line now @ndm. Call to a member function extract() on array |
# |
Feb 18th 2020, 18:54 |
ndm |
`all()` will return a result set, which implements the collection interface. Try `$data['recommendations']['_ids'] = $query->extract('id')->toArray();`. |
# |
Feb 18th 2020, 18:54 |
ndm |
Not sure how a quote translate to IRC, so here it is again just in case |
# |
Feb 18th 2020, 18:52 |
slackebot |
<ndm> |
# |
Feb 18th 2020, 18:52 |
ndm |
If you'd use slack you'd see the missed messages :) |
# |
Feb 18th 2020, 18:51 |
FunkadelicRelic |
So it looks like it is trying to convert array to int which is failing. |
# |
Feb 18th 2020, 18:50 |
FunkadelicRelic |
Whoops - disconnected. |
# |
Feb 18th 2020, 18:47 |
ndm |
`all()` will return a result set, which implements the collection interface. Try `$data['recommendations']['_ids'] = $query->extract('id')->toArray();`. |
# |
Feb 18th 2020, 18:44 |
ricksaccous |
Oh |
# |
Feb 18th 2020, 18:43 |
FunkadelicRelic |
. |
# |
Feb 18th 2020, 18:43 |
FunkadelicRelic |
to integer |
# |
Feb 18th 2020, 18:43 |
FunkadelicRelic |
array |
# |
Feb 18th 2020, 18:43 |
FunkadelicRelic |
If I just do $query, I then get Cannot convert value of type |
# |
Feb 18th 2020, 18:39 |
FunkadelicRelic |
Sorry, I don't really understand. I don't recall deliberately writing to session anywhere. If I do $data['recommendations']['_ids'] = [1, 2]; then it saves perfectly so I guess it's something in the block of code I pasted above? |
# |
Feb 18th 2020, 18:38 |
ricksaccous |
check it in debug |
# |
Feb 18th 2020, 18:38 |
ricksaccous |
if all ur selecting is id, I think... |
# |
Feb 18th 2020, 18:37 |
ricksaccous |
also you wouldn't need to do $query['id'] you'd just do $query |
# |
Feb 18th 2020, 18:37 |
ricksaccous |
where are you writing to session? |
# |
Feb 18th 2020, 18:35 |
FunkadelicRelic |
Thanks @ricksaccous - if I swap that out I get the following error: Argument 1 passed to Cake\Http\Session::_overwrite() must be of the type array, null given, called in /var/www/html/csa-portal-3/vendor/cakephp/cakephp/src/Http/Session.php on line 491 |
# |
Feb 18th 2020, 18:33 |
ricksaccous |
do toArray(); |
# |
Feb 18th 2020, 18:33 |
ricksaccous |
instead of ->all(); |
# |
Feb 18th 2020, 18:33 |
ricksaccous |
by default a query returns a query object |
# |
Feb 18th 2020, 18:29 |
FunkadelicRelic |
If I replace the last bit with a manual array of values instead of $query['id'] such as [1, 2] it works perfectly. |
# |
Feb 18th 2020, 18:28 |
FunkadelicRelic |
When I do the debug, I'm getting the correct recommendations, it's just the last line I think I may be doing wrong. |
# |
Feb 18th 2020, 18:28 |
FunkadelicRelic |
} |
# |
Feb 18th 2020, 18:28 |
FunkadelicRelic |
$data['recommendations']['_ids'] = $query['id']; |
# |
Feb 18th 2020, 18:28 |
FunkadelicRelic |
//debug($query); |
# |
Feb 18th 2020, 18:28 |
FunkadelicRelic |
->all(); |
# |
Feb 18th 2020, 18:28 |
FunkadelicRelic |
->where([$data['recommendationgroup_id'] => 'recommendation_group_id']) |
# |
Feb 18th 2020, 18:28 |
FunkadelicRelic |
->select(['id']) |
# |
Feb 18th 2020, 18:28 |
FunkadelicRelic |
->disableHydration() |
# |
Feb 18th 2020, 18:28 |
FunkadelicRelic |
$recommendations = TableRegistry::get('Recommendations'); |
# |
Feb 18th 2020, 18:28 |
FunkadelicRelic |
$query = $recommendations->find() |
# |
Feb 18th 2020, 18:28 |
FunkadelicRelic |
{ |
# |
Feb 18th 2020, 18:28 |
FunkadelicRelic |
public function beforeMarshal(\Cake\Event\Event $event, \ArrayObject $data, \ArrayObject $options) |