Hey there,
I wanted to update a page, so I did this:
$updateArray = [
'participants' => 'John Doe'
];
$updatedPage = $page->update($updateArray);
… but it gives mentioned error - quite lost, since this worked some minor versions ago pretty well
Where are you doing this? Looks like you are registering an extension somewhere, but with incorrect syntax…
For now, in an ordinary template file - originally inside a hook.
Is that hook still registered somewhere? How, where?
I found and disabled the hook in question, now it just spits out array_merge(): Expected parameter 2 to be an array, bool given
, leading to the code I posted above.
See this function:
protected function extendRoutes($routes): array
{
if (is_a($routes, 'Closure') === true) {
$routes = $routes($this);
}
return $this->extensions['routes'] = array_merge($this->extensions['routes'], $routes);
}
Ok, do you have any routes registered? Maybe in a separate file called from inside a plugin/the config? If so, what is in the config/plugin?
Well, aren’t you the best - commenting my routing file include yields this:
Undefined variable: page
Seems to lead further down a rabbit hole, … as this applied to $page
and $site
calls on all my snippets (?) - I’ll investigate later -_-
OMG - I forgot that my multi-language setup needs to be taken into account: $page->update($updateArray, 'de');
seems to fix it for good
I would have expected this to work without the language param, so that default language would be updated if no particular language is given…
I had the same problem. In my case the issue was the configuration of routes in the config.php
.
I had 'routes' => require_once __DIR__ . '/options/routes.php',
which led to the error mentioned in the title, as soon as the number of a page changed (e.g. sorting or publishing a page). Changing require_once
to require
solves the issue.
// config.php
'routes' => require __DIR__ . '/options/routes.php',