# |
Aug 21st 2019, 15:01 |
admad |
Why cache the query when you are already caching imploded results |
# |
Aug 21st 2019, 15:01 |
daniel.upshaw |
If I hard code the string, it works fine |
# |
Aug 21st 2019, 15:00 |
daniel.upshaw |
I'm not sure if it would make a difference, but it's in my `routes.php`, so aside from potential best practices I don't see how that could make a technical difference? |
# |
Aug 21st 2019, 14:59 |
daniel.upshaw |
So strange |
# |
Aug 21st 2019, 14:58 |
daniel.upshaw |
Much cleaner without the `new Collection` though! |
# |
Aug 21st 2019, 14:58 |
slackebot |
); });``` |
# |
Aug 21st 2019, 14:58 |
daniel.upshaw |
Hrm, oddly this still errs: ```$tagRoutesPiped = Cache::remember('tagRoutesPiped', function () { return (string)implode( '|', TableRegistry::getTableLocator() ->get('Tags') ->find('all') ->select(['alias']) ->where(['route' => 1]) ->cache('tagRoutes') ->all() ->extract('alias')->toArray() |
# |
Aug 21st 2019, 14:57 |
admad |
so `->cache()->all()->extract()->toArray()` |
# |
Aug 21st 2019, 14:56 |
daniel.upshaw |
That's really cool, I did not know that |
# |
Aug 21st 2019, 14:56 |
daniel.upshaw |
Oh awesome!!! |
# |
Aug 21st 2019, 14:56 |
admad |
btw resutlsets are also collections so creating a new collection is unnecessary |
# |
Aug 21st 2019, 14:56 |
slackebot |
->where(['route' => 1]) ->toArray() ))->extract('alias')->toArray() ); });``` |
# |
Aug 21st 2019, 14:56 |
slackebot |
->cache('tagRoutes') ->toArray() ))->extract('alias')->toArray() ); });``` ``` $tagRoutesPiped = Cache::remember('tagRoutesPiped', function () { return (string)implode( '|', (new Collection( TableRegistry::getTableLocator() ->get('Tags') ->find('all') ->select(['alias']) |
# |
Aug 21st 2019, 14:56 |
daniel.upshaw |
It's a great call.... though still error with both of these: ``` $tagRoutesPiped = Cache::remember('tagRoutesPiped', function () { return (string)implode( '|', (new Collection( TableRegistry::getTableLocator() ->get('Tags') ->find('all') ->select(['alias']) ->where(['route' => 1]) |
# |
Aug 21st 2019, 14:55 |
admad |
that will cause the query to be actually run and not give you the pdo serialization error |
# |
Aug 21st 2019, 14:54 |
admad |
@daniel.upshaw add a `->toArray()` after `->cache()` |
# |
Aug 21st 2019, 14:51 |
daniel.upshaw |
Same with this, no error: ``` $tagRoutesPiped = Cache::remember('tagRoutesPiped', function () { return implode( '|', ['test', 'this', 'debug'] ); });``` |
# |
Aug 21st 2019, 14:50 |
daniel.upshaw |
This does not show the error, if I `return 'string';` |
# |
Aug 21st 2019, 14:50 |
daniel.upshaw |
``` $tagRoutesPiped = Cache::remember('tagRoutesPiped', function () { return (string)implode( '|', (new Collection( TableRegistry::getTableLocator() ->get('Tags') ->find('all') ->select(['alias']) ->where(['route' => 1]) ))->extract('alias')->toArray() ); });``` |
# |
Aug 21st 2019, 14:45 |
daniel.upshaw |
For some reason, on the first page load with cache cleared, it is seeing a PDO instance somewhere |
# |
Aug 21st 2019, 14:45 |
daniel.upshaw |
It's so strange, it still does it |
# |
Aug 21st 2019, 14:45 |
daniel.upshaw |
I'll try force casting the `implode` result to `(string)` |
# |
Aug 21st 2019, 14:44 |
daniel.upshaw |
`$tagRoutesPiped` is a string |
# |
Aug 21st 2019, 14:44 |
daniel.upshaw |
But not on subsequent pageloads |
# |
Aug 21st 2019, 14:44 |
daniel.upshaw |
That error happens after a clearing `tmp/*` and refreshing |
# |
Aug 21st 2019, 14:44 |
daniel.upshaw |
`Error: You cannot serialize or unserialize PDO instances` |
# |
Aug 21st 2019, 14:43 |
slackebot |
});``` |
# |
Aug 21st 2019, 14:43 |
daniel.upshaw |
```$tagRoutesPiped = Cache::remember('tagRoutesPiped', function () { return implode( '|', (new Collection( TableRegistry::getTableLocator() ->get('Tags') ->find('all') ->select(['alias']) ->where(['route' => 1]) ->cache('tagRoutes') ))->extract('alias')->toArray() ); |
# |
Aug 21st 2019, 14:43 |
daniel.upshaw |
Experiencing odd behavior with Caching |
# |
Aug 21st 2019, 14:24 |
ricksaccous |
admad is prob right where if you just lowered some paddings/margins in a couple places you'd be fine |
# |
Aug 21st 2019, 14:23 |
ricksaccous |
i dunno |
# |
Aug 21st 2019, 14:23 |
ricksaccous |
i would just test it from your main computer without cake if you could |
# |
Aug 21st 2019, 14:14 |
admad |
problem is most likely in your html not wkhtmltopdf |
# |
Aug 21st 2019, 14:12 |
scuadra |
this is the cakepdf configuration |
# |
Aug 21st 2019, 14:11 |
scuadra |
'margin' => [ 'bottom' => 0, 'left' => 0, 'right' => 0, 'top' => 0 ] |
# |
Aug 21st 2019, 14:11 |
scuadra |
I set all margins to 0 :) |
# |
Aug 21st 2019, 14:11 |
scuadra |
yes |
# |
Aug 21st 2019, 14:10 |
ricksaccous |
try messing with the settings? |
# |
Aug 21st 2019, 14:10 |
ricksaccous |
it probably just means some setting or something to do with page space is causing your pdf to be larger than the space it takes up on the web? |
# |
Aug 21st 2019, 14:09 |
scuadra |
Hello. Has somebody encountered a blank page problem using CakePDF with wkhtmltopdf engine? When I export to pdf, my pdf has 2 pages but the second is absolutely empty. |
# |
Aug 21st 2019, 14:08 |
neon1024 |
Here are the options, which are probably on api.cakephp.org also I’d imagine |